javascript - Javascript 日期对象(新对象与 SetUTCDate)getTime 差异由于夏令时
问题描述
我有一个包含选择 dateCells 的 while 循环,由于夏令时即将到来,它现在正在中断,我想知道是否有更好的方法来修复它..(我的计划在代码下方)
function doLoop(startDateObj, endDateObj){
console.log("start: " + startDateObj)
console.log("end: " + endDateObj)
console.log("-----")
var counterDateObj = new Date(startDateObj);
while (true){
if (counterDateObj.getTime()>endDateObj.getTime()){
// hit! reached after end date
console.log("=> hit");
console.log("counter: "+counterDateObj)
console.log("getTime(): "+counterDateObj.getTime()+" > "+endDateObj.getTime())
break;
};
console.log(counterDateObj);
counterDateObj.setUTCDate(counterDateObj.getUTCDate() + 1);
};
};
在夏令时之前和之后设置值会引发整个事情:
doLoop(new Date('03/07/09'), new Date('03/10/09'));
VM2826:2 start: Sat Mar 07 2009 00:00:00 GMT-0500 (Eastern Standard Time)
VM2826:3 end: Tue Mar 10 2009 00:00:00 GMT-0400 (Eastern Daylight Time)
VM2826:4 -----
VM2826:18 Sat Mar 07 2009 00:00:00 GMT-0500 (Eastern Standard Time)
VM2826:18 Sun Mar 08 2009 00:00:00 GMT-0500 (Eastern Standard Time)
VM2826:18 Mon Mar 09 2009 01:00:00 GMT-0400 (Eastern Daylight Time)
VM2826:11 => hit
VM2826:12 counter: Tue Mar 10 2009 01:00:00 GMT-0400 (Eastern Daylight Time)
VM2826:13 getTime(): 1236661200000 > 1236657600000
我目前的计划是:如果它大于 endDate 时间戳 + 5 额外小时(以毫秒为单位),或类似的东西..
谁能想到更好的方法?我的计划看起来很不错 ehhhh- 不好
解决方案
推荐阅读
- javascript - Redux 辅助函数来检查值是否在商店中
- c++ - 如何在按下并释放一次按钮时打开 LED,然后通过再次按下和释放将其关闭?
- python-3.x - 在 tkinter gui 中显示 i 的增量
- ios - 如何获得 Material Design MDCTextField 的圆角
- typescript - 在快速会话中扩展会话对象
- java - 带有同步块的 Spring 控制器似乎阻塞了整个方法,而不是只有代码块
- api - 如何在 Flutter 中进行 https 调用?
- linux - 如何修复连接被拒绝 [::ffff:127.0.0.1]:linux 上的端口
- c++ - [[nodiscard]] 用于常量 getter 函数
- sql - “IN”中带有子查询的“WHERE”子句