我看过:Get difference between 2 dates in javascript?
我仍然无法让它发挥作用。
var difference = data.List[0].EndDate - Math.round(new Date().getTime()/1000.0) * 1000;
var daysRemaining = Math.floor(difference / 1000 / 60 / 60 / 24);
var hoursRemaining = Math.floor(difference / 1000 / 60 / 60 - (24 * daysRemaining));
var minutesRemaining = Math.floor(difference / 1000 / 60 - (24 * 60 * daysRemaining) - (60 * hoursRemaining));
var secondsRemaining = Math.floor(difference / 1000 - (24 * 60 * 60 * daysRemaining) - (60 * 60 * hoursRemaining) - (60 * minutesRemaining));
data.List [0] .EndDate是一个UTC号码(如:1291427809310(http://www.epochconverter.com/)),它总是晚于当前日期。
答案 0 :(得分:11)
function days_between(date1, date2) {
// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24
// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()
// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)
// Convert back to days and return
return Math.round(difference_ms/ONE_DAY)
}
答案 1 :(得分:6)
我现在相信这个是最好的解决方案:
答案 2 :(得分:5)
你说UTC时间戳是“2004-09-16T23:59:58.75”?
所以你基本上在做
var x = "2004-09-16T23:59:58.75" - 123456
现在您澄清了,上述情况并不适用。您的新问题是过去的毫秒数,因此当您进行差异计算时,您将得到一个负数。您可能想要交换订单。
var difference = new Date().getTime()-data.List[0].EndDate;
答案 3 :(得分:3)
如果EndDate是以毫秒为单位,并且getTime()返回毫秒,那么为什么要将它除以1000除以在同一行中乘以1000?如果你只需要所有其余代码的第二精度,为什么要在几毫秒内工作?从几秒钟开始简化所有计算:
var difference = Math.round((data.List[0].EndDate - new Date().getTime()) / 1000);