将月份字符串转换为日期

时间:2016-04-07 11:46:30

标签: javascript date utc

我使用的某些库不会按字符串值对对象进行排序,但会按日期对它们进行排序。我有几个月喜欢' 2008-04'我应该能够在适当的月份的第一天将它们转换为Javascript日期。但我当地的时区搞砸了:

 new Date('2008-04')
 Mon Mar 31 2008 20:00:00 GMT-0400 (EDT)

这可能是How do you convert a JavaScript date to UTC?的重复,但是我的特定用例可能比那里的答案更简单?

顺便说一句,我通过指定本月的第一天得到了相同的答案:

 new Date('2008-04-01')
 Mon Mar 31 2008 20:00:00 GMT-0400 (EDT)

我正在使用ES6。我不认为这会让它变得更直接吗?

2 个答案:

答案 0 :(得分:1)

'-01T00:00:00Z'添加到字符串中,部分ISO 6801日期:



document.write(new Date('2008-04' + '-01T00:00:00Z'));




答案 1 :(得分:0)

我误解了。日期已经是UTC,只是当我在本地将其显示为字符串并将其转换为我的本地时区时。所以答案就是

 new Date('2008-04').toUTCString()
 "Tue, 01 Apr 2008 00:00:00 GMT"

 new Date('2008-04').toISOString()
 "2008-04-01T00:00:00.000Z"