[javascript] JavaScript에서 ISO 날짜를 날짜 형식 yyyy-mm-dd로 변환

ISO 8601 날짜 에서 yyyy-mm-dd 형식의 날짜를 얻으려면 어떻게 해야합니까?

내 8601 데이트는

2013-03-10T02:00:00Z

다음을 어떻게 얻을 수 있습니까?

2013-03-10



답변

이 시도

date = new Date('2013-03-10T02:00:00Z');
date.getFullYear()+'-' + (date.getMonth()+1) + '-'+date.getDate();//prints expected format.

최신 정보:-

주석에서 지적했듯이 필요한 경우 날짜와 월에 선행 0을 인쇄하도록 답변을 업데이트하고 있습니다.

date = new Date('2013-08-03T02:00:00Z');
year = date.getFullYear();
month = date.getMonth()+1;
dt = date.getDate();

if (dt < 10) {
  dt = '0' + dt;
}
if (month < 10) {
  month = '0' + month;
}

console.log(year+'-' + month + '-'+dt);


답변

문자열을 자르십시오.

var date = new Date("2013-03-10T02:00:00Z");
date.toISOString().substring(0, 10);

또는 문자열에서 날짜 만 필요한 경우.

var strDate = "2013-03-10T02:00:00Z";
strDate.substring(0, 10);


답변

당신은 체크 아웃 할 수 Moment.js , Luxon , 최신 FNS 또는 Day.js을 좋은 날짜 조작을 위해.

또는 ISO 문자열의 첫 부분 만 추출하면 원하는 내용이 이미 포함되어 있습니다. 여기 의해 예는 분할 온은 T:

"2013-03-10T02:00:00Z".split("T")[0] // "2013-03-10"


답변

Moment.js 는 날짜 형식을 처리합니다. 다음은 JavaScript 태그를 통해 포함하는 방법과 날짜 형식을 지정하기 위해 Moment.js를 사용하는 방법의 예입니다.

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

moment("2013-03-10T02:00:00Z").format("YYYY-MM-DD") // "2013-03-10"


답변

이것은 내가 날짜 만 얻는 것입니다.

let isoDate = "2013-03-10T02:00:00Z";

alert(isoDate.split("T")[0]);


답변

Moment.js 는 단일 사용 사례에 사용할 수있는 매우 큰 라이브러리입니다. date-fns대신 사용 하는 것이 좋습니다 . 기본적으로 번들 크기가 훨씬 작고 formatting options.

import format from 'date-fns/format'
format('2013-03-10T02:00:00Z', 'YYYY-MM-DD'); // 2013-03-10, YYYY-MM-dd for 2.x

한 가지 주목할 점은 ISO 8601 시간 형식이므로 브라우저는 일반적으로 UTC 시간에서 현지 시간대로 변환합니다. 이것은 당신이 아마 할 수있는 간단한 사용 사례이지만 '2013-03-10T02:00:00Z'.substring(0, 10);.

더 복잡한 변환 date-fns은 갈 길입니다.


답변

let isoDate = "2013-03-10T02:00:00Z";
var d = new Date(isoDate);
d.toLocaleDateString('en-GB'); // dd/mm/yyyy
d.toLocaleDateString('en-US'); // mm/dd/yyyy