JavaScript에서 제공하는 날짜 형식은 너무 간단합니다. 일반적으로 애플리케이션은 형식 지정 방법을 자체적으로 구현해야 합니다. 다음은 일반적인 요구 사항을 충족할 수 있는 형식 지정 솔루션입니다. 날짜 템플릿을 사용하면 텍스트를 구분 기호로 사용할 수도 있고 yyyyMMdd와 같은 구분 기호 없이 형식을 지정할 수도 있습니다.
원칙:정규 표현식을 사용하여 날짜 템플릿 [ yyyy , MM, dd] 및 구분 기호를 배열로 변환한 다음 날짜 요소를 실제 값으로 바꿔 날짜 문자열
붙여넣기로 실행할 수 있는 두 가지 기능이 구현되어 있습니다.
확장 방법:
예제는 연도, 월, 일, 시, 분, 초, 밀리초 요소만 지원합니다. 요일을 표시해야 하는 경우 값에 w = getDay()를 추가하고 정규식을 수정할 수 있습니다. y |M |d |H |m |s |S |w |[^yMdHmsSw]/g로 표현하면 충분합니다.
월이나 주를 전체 또는 간략한 영어로 표시해야 하는 경우 cfg에 해당 구성을 추가하면 됩니다. cfg에는 예시만 추가했습니다.
사용법:
var date = new Date();
var str = formatDate(date, 'yyyy year MMM Month dd day')
그러면 str 값은 2012년 7월 29일입니다
/**
* 문자열 표현으로 날짜 형식 지정
* @param datetime:Date 형식을 지정할 날짜 개체
* @param format:String 날짜 형식
*/
함수 formatDate(datetime, format) {
var cfg = {
MMM : ['一', 'two', '三', '4' , '5', '6', '7', '8', '9', '10', '11', '12'],
MMMM : ['1', '2', '3 ', '4', '5', '6', '7', '8', '9', '10', '11', '12']
},
값 = {
y : datetime.getFullYear(),
M : datetime.getMonth(),
d : datetime.getDate(),
H : datetime.getHours(),
m : datetime.getMinutes(),
s : datetime.getSeconds(),
S : datetime.getMilliseconds()
}
/*정규식을 사용하여 날짜 형식의 각 요소를 분할합니다* /
var elems = format.match(/y |M |d |H |m |s |S |[^yMdHmsS]/g)
//날짜 요소를 실제 값으로 교체
(var i = 0; i if (cfg[elems[i]]) {
elems[i] = cfg[elems[i]][values[elems [ i].charAt(0)]];
} else if (values[elems[i].charAt(0)]) {
elems[i] = formatNumber(values[elems[i].charAt ( 0)], elems[i].replace(/./g, '0'))
}
}
return elems.join('')
}