프로그래밍 언어/HTML,CSS,JS

JavaScript 날짜 형식을 지정하는 방법

Rateye 2022. 3. 26. 16:45
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
반응형