【发布时间】:2014-03-22 00:04:52
【问题描述】:
我需要从 2000 年以来的每一天每一小时的日期数据字符串中创建日期对象。
每个小时的字符串都是这样的,格式为Month/Day/Year Hour...
"04/02/2000 01", "04/02/2000 02", "04/02/2000 03" ...all the way to... "04/02/2000 24"
现在,我有以下代码,除了夏令时之外,它可以正常工作...
// Split At Space
var splitDate = "04/02/2000 24".split(/[ ]+/);
var hour = splitDate[1];
var day = splitDate[0];
// Split At Slashes
var dayArray = day.split("/");
if (hour === "24") {
// Months are zero-based, so subtract 1 from the month
date = new Date(Date.UTC( dayArray[2], parseInt(dayArray[0] - 1), dayArray[1], 0, 0, 0 ));
date.setDate(date.getDate() + 1);
} else {
// Months and Hours are zero-based, so subtract 1 from each
date = new Date(Date.UTC( dayArray[2], parseInt(dayArray[0] - 1), dayArray[1], hour, 0, 0 ));
};
在有夏令时的日子,例如04/02/2000,如果小时为24,则添加一天不起作用。相反,它只返回Sun, 02 Apr 2000 23:00:00 GMT
使用 Moment.js,是否可以检测 DST 日并让此代码正常工作?
【问题讨论】:
标签: javascript date momentjs