JavaScript 날짜 형식을 yyyy-mm-dd로


382

형식이있는 날짜가 Sun May 11,2014있습니다. 2014-05-11JavaScript 를 사용하여 어떻게 변환 할 수 있습니까?

function taskDate(dateMilli) {
    var d = (new Date(dateMilli) + '').split(' ');
    d[2] = d[2] + ',';

    return [d[0], d[1], d[2], d[3]].join(' ');
}

var datemilli = Date.parse('Sun May 11,2014');
console.log(taskDate(datemilli));

위의 코드는 동일한 날짜 형식을 제공 sun may 11,2014합니다. 이 문제를 어떻게 해결할 수 있습니까?


7
위의 코드가 구문 오류 이외의 것을 제공한다고 의심합니다.
plalx

Moment.js와 같은 라이브러리 사용을 고려하십시오. 원하는 결과로 포맷됩니다 :)
Ankur

5
5 줄의 코드로 작업 할 수있을 때 왜 라이브러리를 사용합니까? @Ankur
블랙 맘바


관련 : JavaScript에서 유효한 날짜 시간 문자열은 무엇입니까? "2014 년 5 월 11 일 일요일"은 유효한 날짜 문자열이 아니며 일부 브라우저에서 구문 분석이 실패 할 수 있습니다.
str

답변:


524

넌 할 수있어:

function formatDate(date) {
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) 
        month = '0' + month;
    if (day.length < 2) 
        day = '0' + day;

    return [year, month, day].join('-');
}

사용 예 :

alert(formatDate('Sun May 11,2014'));

산출:

2014-05-11

JSFiddle 데모 : http://jsfiddle.net/abdulrauf6182012/2Frm3/


11
같은 문장에서 실제로 여러 변수 선언? stackoverflow.com/questions/694102/…
bhspencer

8
@ Fuser97381 같은 문장에서 여러 변수 선언은 단순한 미적 스타일의 선호 이상입니다. 위험한 습관입니다. 실수로 각 선언 후에 쉼표를 추가하면 전역 변수가 생성됩니다. 질문에 대한 정식 답변이 될 수있는 것에 대해 권장해야 할 것은 아닙니다.
bhspencer

6
'use strict';@bhspencer
Vix

3
날짜 문자열의 형식을 변경하면 내장 구문 분석기가 비표준 문자열을 구문 분석하는 데 의존해서는 안됩니다. OP 형식이 주어지면 Date를 전혀 사용하지 않고도 적은 코드로 다시 포맷 할 수 있습니다.
RobG

1 ~ 31 범위에서 30 일을 더 늘리는 방법은 무엇입니까?
Steve Angello

456

toISOString날짜를 ISO 8601 형식으로 가져 오는 기본 제공 방법을 활용하십시오 .

yourDate.toISOString().split('T')[0]

yourDate가 날짜 개체 인 곳

편집 : 어떤 사람은 주석에서 시간대를 처리하기 위해 이것을 썼습니다 :

const offset = yourDate.getTimezoneOffset()
yourDate = new Date(yourDate.getTime() + (offset*60*1000))
return yourDate.toISOString().split('T')[0]

238
이 방법은 날짜를 UTC로 변환 할 때주의하십시오. + 시간대에 있고 시간 부분이 이른 시간이면 하루에 롤백 할 수 있습니다. 또는 시간대에 있고 시간대가 늦는 경우 하루를 롤 포워드 할 수 있습니다.
Luke Baulch

4
대신 이것을 시도하십시오 :new Date(yourDateStr).toISOString().split('T')[0]
exbuddha

24
const offset = yourDate.getTimezoneOffset(); yourDate = new Date(yourDate.getTime() + (offset*60*1000)); yourDate.toISOString().split('T')[0] 이것은 표준 시간대의 문제를 해결해야합니다
mjwrazor

5
now.toISOString().substring(0,10); 이것은 YYYY-MM-DD완전한 iso 형식의 첫 10
자임

4
참고 : @mjwrazor 댓글을 달았 유용한 솔루션을 사용하여, 나는 빼기 대신 추가했다 정확한 날짜합니다 (변경 얻을 오프셋 + (offsetA를 - (offset)
로코코

135

이 방법으로 날짜를 yyyy-mm-dd 형식으로 가져옵니다. :)

var todayDate = new Date().toISOString().slice(0,10);

14
@Luke_Baulch가 언급 한대로 날짜 전환을 어떻게 처리합니까?
Malvineous

7
이렇게 할 수 있습니다 : var todayDate = new Date (); todayDate.setMinutes (todayDate.getMinutes ()-todayDate.getTimezoneOffset ()); todayDate.toISOString (). slice (0,10); UTC 문제를 피하는 데 도움이됩니다.
페르난도 아길라

1
@FernandoAguilar 의심의 여지가 있지만 오프셋을 빼거나 추가해야한다는 것을 어떻게 알 수 있습니까?
whyAto8

var todayDate = new Date(2018, 3 - 1, 26); todayDate.toISOString().slice(0, 10);나에게 준다 "2018-03-25". 다른 시스템에서 var todayDate = new Date(2018, 3 - 1, 26, 17, 0, 0); todayDate.toISOString().slice(0, 10);나에게 준다 "2018-03-27".
살만 A

2
항상 작동하지는 않습니다. UTC 변환으로 인해 하루가 차감되는 경우가 있습니다.
NickG

110

날짜를 yyyy-mm-dd 형식으로 변환하는 가장 간단한 방법은 다음과 같습니다.

var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
                    .toISOString()
                    .split("T")[0];

작동 방식 :

  • new Date("Sun May 11,2014")문자열 "Sun May 11,2014"을 시간을 나타내는 날짜 객체 로 변환Sun May 11 2014 00:00:00 현재 로캘 (호스트 시스템 설정)을 기준으로 시간대
  • new Date(date.getTime() - (date.getTimezoneOffset() * 60000 )) 날짜를 시간에 해당하는 날짜 객체로 변환 Sun May 11 2014 00:00:00시간대 오프셋을 빼서 UTC (표준 시간) 단위
  • .toISOString() 날짜 객체를 ISO 8601 문자열로 변환 2014-05-11T00:00:00.000Z
  • .split("T") 문자열을 배열로 분할 ["2014-05-11", "00:00:00.000Z"]
  • [0] 해당 배열의 첫 번째 요소를 가져옵니다

데모

var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
                    .toISOString()
                    .split("T")[0];

console.log(dateString);


20
아무도 이것이 가장 간단한 방법이라는 것을 두려워하지 않습니다 ??
gap

.toISOString ()은 일광 절약 시간 제로 올바르게 작동하지 않습니다.
Joe 's Ideas

2
@JoeDevmon : 나는 그것이 그것이 어떻게 관련되어 있는지 알지 못한다. - (date.getTimezoneOffset() * 60000 )비트 일광 절약 시간의 영향을 포함한 모든 시간대의 차이를 제거해야합니다.
John Slegers

2
@ JohnSlegers 그것이 내가 생각했던 것인데, 어떤 경우에는 여전히 전날을 받고있었습니다. 리팩토링하고 당신의 모범은 지금 작동합니다. 이상한 데이트 문자열이나 무언가가 있었을 것입니다. 그것을 고수하고 지적 해 주셔서 감사합니다. +1 👍
Joe의 아이디어

2
나는 JS와 다른 사이트에서 JS에서 날짜와 관련된 시간대 문제를 다루는 가장 좋은 방법을 찾기 위해 높고 낮은 것을 검색했으며, 이것이 가장 쉽고 가장 좋습니다. 감사합니다!
HartleySan

34
format = function date2str(x, y) {
    var z = {
        M: x.getMonth() + 1,
        d: x.getDate(),
        h: x.getHours(),
        m: x.getMinutes(),
        s: x.getSeconds()
    };
    y = y.replace(/(M+|d+|h+|m+|s+)/g, function(v) {
        return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2)
    });

    return y.replace(/(y+)/g, function(v) {
        return x.getFullYear().toString().slice(-v.length)
    });
}

결과:

format(new Date('Sun May 11,2014'), 'yyyy-MM-dd')
"2014-05-11

1
이 솔루션이이 질문에 대한 다른 답변보다 더 뛰어난 유연성을 원합니다. 나는 이것을 철저히 테스트하지는 않았지만 원하는 형식 (예 : "yyyy-MM-dd hh : mm : ss")에 대해 예상대로 작동합니다.
porcus

3
당신은 eaaaaaaaailyly 피할 수 있었다 eval.
Salman A

3
여기에 eval을 피하고 더 나은 jsfiddle.net/8904cmLd/2를 언급하는 버전이 있습니다.
m1m1k

2
나는이 응답으로부터 이익을 얻었습니다. 그 줄을 eval 문으로 바 return ((v.length > 1 ? "0" : "") + z[v.slice(-1)]).slice(-2);
꾸었

26

일부 답변의 조합 :

var d = new Date(date);
date = [
  d.getFullYear(),
  ('0' + (d.getMonth() + 1)).slice(-2),
  ('0' + d.getDate()).slice(-2)
].join('-');

나는 해결책을 가장 좋아합니다-읽기 쉽고, toISOString()그 기능을 사용할 때의 잠재적 인 함정과 의존하지 않습니다 .
matt.fc

이것이 내 뇌를 해치지 않는 첫 번째 것입니다.
ckapilla

22

라이브러리 사용에 대해 아무것도 없다면 Moments.js 라이브러리를 다음과 같이 사용할 수 있습니다 .

var now = new Date();
var dateString = moment(now).format('YYYY-MM-DD');

var dateStringWithTime = moment(now).format('YYYY-MM-DD HH:mm:ss');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


멋진 솔루션이지만 300kb 패키지
Adam은

13

간단히 이것을 사용하십시오 :

var date = new Date('1970-01-01'); // Or your date here
console.log((date.getMonth() + 1) + '/' + date.getDate() + '/' +  date.getFullYear());

간단하고 달콤한;)


4
2 글자 형식에는 패딩이 없습니다. 날짜 또는 월이 10보다 작은 경우 한 자리 숫자로 표시되므로 직접 사용할 수 없습니다.
Yatender Singh

네,하지만 그것은 단순히 자바 스크립트를 사용하여 달성 할 수 있습니다. 귀하의 요구 사항까지 완전히 그렇지 않습니까? @YatenderSingh
Pardeep Jain

4
그래 맞지만 그가 원하는 질문 "yyyy-mm-dd"형식을 확인하십시오 :)
Yatender Singh

var old_date = 새로운 날짜 (날짜); var new_date = old_date.getFullYear () + '-'+ (old_date.getMonth () + 1) + '-'+ old_date.getDate ()
Sitti Munirah Abdul Razak

1
큰. 그것은 효과가 있었고 간단하고 간결했습니다!
Waleed93

12

toISOString()날짜가 현지 시간 인 것으로 가정하고 UTC로 변환합니다. 날짜 문자열이 잘못되었습니다.

다음 방법은 필요한 것을 반환해야합니다.

Date.prototype.yyyymmdd = function() {         

    var yyyy = this.getFullYear().toString();                                    
    var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based         
    var dd  = this.getDate().toString();             

    return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
};

출처 : https://blog.justin.kelly.org.au/simple-javascript-function-to-format-the-date-as-yyyy-mm-dd/


8

연도, 월, 일을 검색 한 후 정리하십시오. 일관되고 간단하며 정확합니다.

function formatDate(date) {
    var year = date.getFullYear().toString();
    var month = (date.getMonth() + 101).toString().substring(1);
    var day = (date.getDate() + 100).toString().substring(1);
    return year + "-" + month + "-" + day;
}

//Usage example:
alert(formatDate(new Date()));


8

당신은 사용할 수 있습니다 toLocaleDateString('fr-CA')Date객체

console.log(new Date('Sun May 11,2014').toLocaleDateString('fr-CA'));

또한 해당 로케일이이 로케일 목록에서 모든 로케일 목록 및 해당 단축 코드의 올바른 결과를 제공한다는 것을 알았습니다 .

'en-CA'
'fr-CA'
'lt-LT'
'sv-FI'
'sv-SE'


어떤 생각이 이 작품? ISO 형식이 기본 형식입니까, 아니면이 로케일이 실제로 해당 형식을 사용합니까? 전자의 경우 미래에 예기치 않게 변경 될 수 있다는 우려가 있습니다.
jymbob

브라우저 외부에서 NodeJS와 작동하지 않습니다.
도나 토

@jymbob이 로케일이 실제로 이러한 형식을 사용한다고 생각합니다. 나는이 Wikipedia 페이지를 보면서 같은 대답을했다 : en.wikipedia.org/wiki/Date_format_by_country
Ciprian Tomoiagă

5

시간대를 고려하기 위해이 하나의 라이너는 라이브러리가 없어야합니다.

new Date().toLocaleString("en-IN", {timeZone: "Asia/Kolkata"}).split(',')[0]

5

이것을 시도 할 수 있습니다 : https://www.npmjs.com/package/timesolver

npm i timesolver

코드에서 사용하십시오.

const timeSolver = require('timeSolver');
const date = new Date();
const dateString = timeSolver.getString(date, "YYYY-MM-DD");

이 방법을 사용하여 날짜 문자열을 얻을 수 있습니다.

getString

4

이 답변들 중 어느 것도 나를 만족시키지 못했습니다. 외부 라이브러리를 사용하지 않고 현지 시간대로 하루를 보낼 수있는 크로스 플랫폼 솔루션을 원했습니다.

이것이 내가 생각해 낸 것입니다.

function localDay(time) {
  var minutesOffset = time.getTimezoneOffset()
  var millisecondsOffset = minutesOffset*60*1000
  var local = new Date(time - millisecondsOffset)
  return local.toISOString().substr(0, 10)
}

날짜가 참조하는 시간대로 날짜를 YYYY-MM-DD 형식으로 반환해야합니다.

예를 들어 UTC에 이미 24 일이더라도 localDay(new Date("2017-08-24T03:29:22.099Z"))반환 "2017-08-23"합니다.

Internet Explorer 8에서 작동 하려면 Date.prototype.toISOString을 polyfill해야하지만 다른 곳에서는 지원해야합니다.


UTC보다 충분히 부족한 경우 (예 : 미국) 2017-08-23 만 제공 할 것입니다.
Simon D

3

매번 복제하려고하는 대신 formatDate-js 와 같은 것을 사용하는 것이 좋습니다 . 모든 주요 strftime 조치를 지원하는 라이브러리를 사용하십시오.

new Date().format("%Y-%m-%d")

3
new Date().toLocaleDateString('pt-br').split( '/' ).reverse( ).join( '-' );

또는

new Date().toISOString().split('T')[0]
new Date('23/03/2020'.split('/').reverse().join('-')).toISOString()
new Date('23/03/2020'.split('/').reverse().join('-')).toISOString().split('T')[0]

이 시도!


두 번째 옵션은 UTC 시간대로 데이터를 표시하므로 잘못된 날짜를 표시 할 수 있습니다.
Ever Dev

2

이를 수행하는 한 가지 방법이 있습니다.

var date = Date.parse('Sun May 11,2014');

function format(date) {
  date = new Date(date);

  var day = ('0' + date.getDate()).slice(-2);
  var month = ('0' + (date.getMonth() + 1)).slice(-2);
  var year = date.getFullYear();

  return year + '-' + month + '-' + day;
}

console.log(format(date));

2

Date.js가 좋습니다.

require("datejs")
(new Date()).toString("yyyy-MM-dd")

1

function myYmd(D){
    var pad = function(num) {
        var s = '0' + num;
        return s.substr(s.length - 2);
    }
    var Result = D.getFullYear() + '-' + pad((D.getMonth() + 1)) + '-' + pad(D.getDate());
    return Result;
}

var datemilli = new Date('Sun May 11,2014');
document.write(myYmd(datemilli));


1

var d = new Date("Sun May 1,2014");

var year  = d.getFullYear();
var month = d.getMonth() + 1;
var day   = d.getDate(); 

month = checkZero(month);             
day   = checkZero(day);

var date = "";

date += year;
date += "-";
date += month;
date += "-";
date += day;

document.querySelector("#display").innerHTML = date;
    
function checkZero(i) 
{
    if (i < 10) 
    {
        i = "0" + i
    };  // add zero in front of numbers < 10

    return i;
}
<div id="display"></div>


1
new Date(new Date(YOUR_DATE.toISOString()).getTime() - 
                 (YOUR_DATE.getTimezoneOffset() * 60 * 1000)).toISOString().substr(0, 10)

1

이전 답변 중 일부는 괜찮 았지만 매우 유연하지 않았습니다. 실제로 더 많은 경우를 처리 할 수 ​​있기를 원했기 때문에 @orangleliu의 답변을 받아 확장했습니다. https://jsfiddle.net/8904cmLd/1/

function DateToString(inDate, formatString) {
    // Written by m1m1k 2018-04-05

    // Validate that we're working with a date
    if(!isValidDate(inDate))
    {
        inDate = new Date(inDate);
    }

    // See the jsFiddle for extra code to be able to use DateToString('Sun May 11,2014', 'USA');
    //formatString = CountryCodeToDateFormat(formatString);

    var dateObject = {
        M: inDate.getMonth() + 1,
        d: inDate.getDate(),
        D: inDate.getDate(),
        h: inDate.getHours(),
        m: inDate.getMinutes(),
        s: inDate.getSeconds(),
        y: inDate.getFullYear(),
        Y: inDate.getFullYear()
    };

    // Build Regex Dynamically based on the list above.
    // It should end up with something like this: "/([Yy]+|M+|[Dd]+|h+|m+|s+)/g"
    var dateMatchRegex = joinObj(dateObject, "+|") + "+";
    var regEx = new RegExp(dateMatchRegex,"g");
    formatString = formatString.replace(regEx, function(formatToken) {
        var datePartValue = dateObject[formatToken.slice(-1)];
        var tokenLength = formatToken.length;

        // A conflict exists between specifying 'd' for no zero pad -> expand
        // to '10' and specifying yy for just two year digits '01' instead
        // of '2001'.  One expands, the other contracts.
        //
        // So Constrict Years but Expand All Else
        if (formatToken.indexOf('y') < 0 && formatToken.indexOf('Y') < 0)
        {
            // Expand single digit format token 'd' to
            // multi digit value '10' when needed
            var tokenLength = Math.max(formatToken.length, datePartValue.toString().length);
        }
        var zeroPad = (datePartValue.toString().length < formatToken.length ? "0".repeat(tokenLength) : "");
        return (zeroPad + datePartValue).slice(-tokenLength);
    });

    return formatString;
}

사용법 예 :

DateToString('Sun May 11,2014', 'MM/DD/yy');
DateToString('Sun May 11,2014', 'yyyy.MM.dd');
DateToString(new Date('Sun Dec 11,2014'),'yy-M-d');

깨끗하고 논평 된 솔루션. 그러나 나는 첫 번째 주장에 대해 회의적 입니다. 유효한 날짜로 인식되지 않으면 새로운 날짜로 조용히 대체됩니다. 그 오류가 나타나도록 차라리, 형식이 인식되지 않는 경우 (간단한 "잘못된 날짜 형식"반환 된 문자열이 될 수 있음) 대신 2 인자로이 "optionnal 기본값을"넣어 예외의 어떤 종류를 돌려 줄 분명히 에 테스터 / 사용자
Balmipour

1

이것은 원하는 날짜 형식 (YYYYMMDD HH : MM : SS)으로 현재 날짜를 얻는 데 도움이되었습니다.

var d = new Date();

var date1 = d.getFullYear() + '' +
            ((d.getMonth()+1) < 10 ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1)) +
            '' +
            (d.getDate() < 10 ? "0" + d.getDate() : d.getDate());

var time1 = (d.getHours() < 10 ? "0" + d.getHours() : d.getHours()) +
            ':' +
            (d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()) +
            ':' +
            (d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds());

print(date1+' '+time1);

1

도서관이 필요하지 않습니다

순수한 JavaScript입니다.

아래 예제는 오늘로부터 지난 두 달을 얻습니다.

var d = new Date()
d.setMonth(d.getMonth() - 2);
var dateString = new Date(d);
console.log('Before Format', dateString, 'After format', dateString.toISOString().slice(0,10))


위험한. 이 경우 시간대 오프셋을 무시합니다.
maxence51

1

PHP 호환 날짜 형식

다음은 PHP 함수와 동일한 매개 변수를 사용할 수있는 작은 함수입니다. date() 와 JavaScript에서 날짜 / 시간 문자열을 반환 .

PHP의 모든 date () 형식 옵션이 지원되는 것은 아닙니다. parts누락 된 형식 토큰을 만들기 위해 개체를 확장 할 수 있습니다

/**
 * Date formatter with PHP "date()"-compatible format syntax.
 */
const formatDate = (format, date) => {
  if (!format) { format = 'Y-m-d' }
  if (!date) { date = new Date() }

  const parts = {
    Y: date.getFullYear().toString(),
    y: ('00' + (date.getYear() - 100)).toString().slice(-2),
    m: ('0' + (date.getMonth() + 1)).toString().slice(-2),
    n: (date.getMonth() + 1).toString(),
    d: ('0' + date.getDate()).toString().slice(-2),
    j: date.getDate().toString(),
    H: ('0' + date.getHours()).toString().slice(-2),
    G: date.getHours().toString(),
    i: ('0' + date.getMinutes()).toString().slice(-2),
    s: ('0' + date.getSeconds()).toString().slice(-2)
  }

  const modifiers = Object.keys(parts).join('')
  const reDate = new RegExp('(?<!\\\\)[' + modifiers + ']', 'g')
  const reEscape = new RegExp('\\\\([' + modifiers + '])', 'g')

  return format
    .replace(reDate, $0 => parts[$0])
    .replace(reEscape, ($0, $1) => $1)
}

// ----- EXAMPLES -----
console.log( formatDate() ); // "2019-05-21"
console.log( formatDate('H:i:s') ); // "16:21:32"
console.log( formatDate('Y-m-d, o\\n H:i:s') ); // "2019-05-21, on 16:21:32"
console.log( formatDate('Y-m-d', new Date(2000000000000)) ); // "2033-05-18"

요점

다음은 업데이트 된 formatDate()기능 버전 및 추가 예제 가 포함 된 요지입니다 . https://gist.github.com/stracker-phil/c7b68ea0b1d5bbb97af0a6a3dc66e0d9


0

또 다른 대답의 조합. 잘 읽을 수 있지만 약간 길다.

function getCurrentDayTimestamp() {
  const d = new Date();

  return new Date(
    Date.UTC(
      d.getFullYear(),
      d.getMonth(),
      d.getDate(),
      d.getHours(),
      d.getMinutes(),
      d.getSeconds()
    )
  // `toIsoString` returns something like "2017-08-22T08:32:32.847Z"
  // and we want the first part ("2017-08-22")
  ).toISOString().slice(0, 10);
}

0

날짜가 모든 시간대에서 동일해야하는 경우 (예 : 데이터베이스의 일부 값을 나타내는 경우) UTC 날짜 및 날짜로 표시되는 JavaScript 날짜 오브젝트에 날짜, 월, 전체 연도의 UTC 버전을 사용해야합니다. 특정 시간대에서는 일대일 오류를 피하십시오.

더 좋은 방법은 Moment.js 날짜 라이브러리를 사용하여 이러한 형식을 지정하는 것입니다.


0

Samit Satpute의 응답 을 다음과 같이 수정 했습니다 .

var newstartDate = new Date();
// newstartDate.setDate(newstartDate.getDate() - 1);
var startDate = newstartDate.toISOString().replace(/[-T:\.Z]/g, ""); //.slice(0, 10); // To get the Yesterday's Date in YYYY MM DD Format
console.log(startDate);


0

해시 맵 데이터에서 최대 및 최소 날짜 형식 및 찾기 :

var obj = {"a":'2001-15-01', "b": '2001-12-02' , "c": '2001-1-03'};

function findMaxMinDate(obj){
  let formatEncode = (id)=> { let s = id.split('-'); return `${s[0]+'-'+s[2]+'-'+s[1]}`}
  let formatDecode = (id)=> { let s = id.split('/'); return `${s[2]+'-'+s[0]+'-'+s[1]}`}
  let arr = Object.keys( obj ).map(( key )=> { return new Date(formatEncode(obj[key])); });
  let min = new Date(Math.min.apply(null, arr)).toLocaleDateString();
  let max = new Date(Math.max.apply(null, arr)).toLocaleDateString();
  return {maxd: `${formatDecode(max)}`, mind:`${formatDecode(min)}`}
}

console.log(findMaxMinDate(obj));


이것은 질문과 날짜와 어떻게 관련이 있습니까?
피터 Mortensen

0

날짜 문자열을 재 포맷하는 것은 매우 간단합니다. 예 :

var s = 'Sun May 11,2014';

function reformatDate(s) {
  function z(n){return ('0' + n).slice(-2)}
  var months = [,'jan','feb','mar','apr','may','jun',
                 'jul','aug','sep','oct','nov','dec'];
  var b = s.split(/\W+/);
  return b[3] + '-' +
    z(months.indexOf(b[1].substr(0,3).toLowerCase())) + '-' +
    z(b[2]);
}

console.log(reformatDate(s));

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.