将月份字符串转换为日期

convert month string to date

本文关键字:日期 转换 字符串      更新时间:2024-02-12

我使用的库不会按字符串值对对象进行排序,而是按日期对它们进行排序。我有像"2008-04"这样的月份,我应该能够将它们转换为适当月份的第一个Javascript日期。但我的本地时区搞砸了:

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

这可能是《如何将JavaScript日期转换为UTC?》的副本?,但对于我的特定用例,也许有一个比那里的答案更简单的答案?

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

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

我正在使用ES6。我想这不会让事情变得更简单吗?

'-01T00:00:00Z'添加到包含ISO 6801日期的字符串中:

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

我误解了。日期已经是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"