728x90
반응형
질문 : JavaScript 날짜 형식을 지정하는 방법은 무엇입니까?
10-Aug-2010
일로 인쇄하도록 날짜 개체의 형식을 지정하려면 어떻게해야합니까?
답변
DateTimeFormat
객체 ( ECMAScript Internationalization API의 일부)에서 날짜 (또는 시간) 구성 요소를 가져온 다음 원하는 구분 기호로 문자열을 수동으로 만들어야합니다.
DateTimeFormat#formatToParts
사용할 수 있습니다. 배열을 분해 할 수는 있지만 배열 출력이 로케일에 따라 다르기 때문에 이상적이지 않습니다.
{ // example 1
let f = new Intl.DateTimeFormat('en');
let a = f.formatToParts();
console.log(a);
}
{ // example 2
let f = new Intl.DateTimeFormat('hi');
let a = f.formatToParts();
console.log(a);
}
형식 배열을 결과 문자열에 매핑하는 것이 더 좋습니다.
function join(t, a, s) {
function format(m) {
let f = new Intl.DateTimeFormat('en', m);
return f.format(t);
}
return a.map(format).join(s);
}
let a = [{day: 'numeric'}, {month: 'short'}, {year: 'numeric'}];
let s = join(new Date, a, '-');
console.log(s);
당신은 또한의 부분 당겨 수 DateTimeFormat
사용 하나씩을 DateTimeFormat#format
하지만, 년 3 월 2020로이 방법을 사용하는 경우가 있습니다 버그 ECMA 스크립트 구현은이 분 앞에 0이 올 때 초 (이 버그는 위의 접근 방식으로 우회됩니다).
let d = new Date(2010, 7, 5);
let ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d);
let mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d);
let da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d);
console.log(`${da}-${mo}-${ye}`);
날짜와 시간으로 작업 할 때 필드의 많은 숨겨진 복잡성 때문에 일반적으로 라이브러리 (예 : moment.js , luxon)를 사용하는 것이 좋습니다.
위의 솔루션에 사용 된 ECMAScript 국제화 API 는 IE10에서 지원되지 않습니다 (2020 년 2 월 글로벌 브라우저 시장 점유율 0.03 %).
출처 : https://stackoverflow.com/questions/3552461/how-to-format-a-javascript-date
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript 객체로 이루어진 배열의 요소 변수에 담기 (0) | 2022.03.26 |
---|---|
JavaScript 변수 이름에 유효한 문자 목록 (0) | 2022.01.17 |
Javascript에서 배열 시작 부분에 새 배열 요소를 추가하는 방법 (0) | 2022.01.06 |
스크롤 후 요소가 보이는지 확인하는 방법 (0) | 2022.01.06 |
[Javascript] html 클래스가 포함되어 있는지 확인하는 방법 (0) | 2022.01.06 |