1

我正在尝试获取从现在到中午 12 点(中午)之间的小时和分钟的当前时差。如果当天已过 12 点,则必须将小时数倒计时到第二天。

我已经在这里看了一段时间,发现了很多关于获取日期差异的例子,但是我无法及时找到一个可行的解决方案,所以一直在玩自己写的东西。但是,我无法getTime();从新日期的毫秒时间戳中获取小时和分钟,并且不确定确切原因。这是我的代码:

dateone = new Date();
datetwo = new Date();
datetwo = datetwo.setHours(12);
dateone = dateone.getTime();
datetwo = datetwo.getTime();

if(dateone > datetwo) {
var seconds = dateone - datetwo;
} else {
var seconds = datetwo - dateone;
}

var d = seconds;
var minutes=(d/(1000*60))%60;
var hours=(d/(1000*60*60))%24;
var minutesround=Math.floor(minutes);
var hoursround=Math.round(hours);
var endtime = 12;

alert(hours);
alert(minutes);

如果有人能够找到更好的方法,或者可以提出任何建议,将不胜感激!

谢谢,西蒙

4

1 回答 1

2

尝试

var d = new Date(), midDay = new Date();

midDay.setHours(12);
midDay.setMinutes(0);
midDay.setSeconds(0);

if(d > midDay) {
    midDay.setDate(midDay.getDate() + 1)
}
var diff = (midDay.getTime() - d.getTime()) / 1000;

var hrs = parseInt(diff / 3600);
diff = diff % 3600;

var minutes = parseInt(diff / 60);
console.log(hrs, minutes)

演示:小提琴

于 2013-09-16T13:19:27.003 回答