我知道这可以通过以下方式完成:
有直接的方法吗?
答案 0 :(得分:1)
如果您只想比较时间组件,可以执行以下操作:
function isTimeEqual(d0, d1) {
return d0.getHours() == d1.getHours() &&
d0.getMinutes() == d1.getMintues() &&
d0.getSeconds() == d1.getSeconds() &&
d0.getMilliseconds() == d1.getMilliseconds();
}
你可能不关心毫秒。
如果您知道在该位置从未观察到夏令时,或者时间是UTC,您可以这样做:
var msPerDay = 24*60*60*1000;
return d0 % msPerDay == d1 % msPerDay;
或
return !((d0 - d1) % 8.64e7);
答案 1 :(得分:1)
我认为最好的方法是第二种方法。但它可以这样做。
var d1 = new Date("10/10/2008 12:00");
var d2 = new Date("10/12/2008 12:30");
var diff = (d2-d1) % 86400000;
如果你想让它适用于d1> D2,
var d1 = new Date("10/11/2010 12:00");
var d2 = new Date("10/10/2010 12:30");
d1.setFullYear(d2.getFullYear());
d1.setMonth(d2.getMonth());
d1.setDate(d2.getDate());
var diff = d2-d1;