【发布时间】:2017-03-08 04:58:55
【问题描述】:
我有这段代码可以根据用户计算机的时间计算直到午夜 CST 的毫秒数。
对于我所在的时区,now.getTimezoneOffset() 返回 420,使 tmzOfst 为 60。
function millisToMidnight() {
var now = new Date();
var tmzOfst = (now.getTimezoneOffset())-360; //-360 minutes = CST
now.setHours(-(tmzOfst/60));// Adjust 'now' to CST time
var then = new Date(now); //make a var same as now
then.setHours(24, 0, 0, 0); //set to midnight
return (then - now); //calculate difference
}
但是,当我运行这个(console.log 无处不在)时,我得到了这个:
Now = Tue Mar 07 2017 21:51:05 GMT-0700 (Mountain Standard Time)
tmzOfst = 120
Then = Mon Mar 06 2017 22:51:05 GMT-0700 (Mountain Standard Time)
正如您所见,它正确地将时间更改为 CST,但是,它最终也会更改一天的日期。有没有更简单的方法来做到这一点?为什么会变天?
【问题讨论】:
标签: javascript time