gpt4 book ai didi

javascript - Moment.js - 如何检测夏令时并增加一天

转载 作者:IT王子 更新时间:2023-10-29 03:23:15 26 4
gpt4 key购买 nike

我需要从 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 日期并使此代码正常工作?

最佳答案

要检测 DST,请使用 .isDST() 方法:http://momentjs.com/docs/#/query/is-daylight-saving-time/

moment([2011, 2, 12]).isDST(); // false, March 12 2011 is not DST
moment([2011, 2, 14]).isDST(); // true, March 14 2011 is DST

使用此测试,您应该能够确定如何相应地修改程序的行为。

关于javascript - Moment.js - 如何检测夏令时并增加一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com