【发布时间】:2020-11-25 13:33:26
【问题描述】:
我有一个事件,这个事件的日期和时间被格式化为 unix 时间戳类型。
在 JavaScript 中(不是在寻找插件方法,例如 modern.js),我现在正在尝试确定今天日期和事件日期之间的时间差。
我正在寻求实现“事件倒计时”功能,该功能将对事件日期的天、小时、分钟和秒进行倒计时。
我下面代码中的{{ event_date_and_time }} 是一个HuBL 变量。
目前的做法:
var todays_date = new Date().getTime() / 1000;
var event_date = new Date({{ event_date_and_time }}).getTime() / 1000
var start = todays_date;
var end = event_date;
console.log(todays_date); // this logs "1596626215.983"
console.log(end); // this logs "1596888000"
function timeDifference(date1,date2) {
var difference = date1 - date2;
var daysDifference = Math.floor(difference/1000/60/60/24);
difference -= daysDifference*1000*60*60*24
var hoursDifference = Math.floor(difference/1000/60/60);
difference -= hoursDifference*1000*60*60
var minutesDifference = Math.floor(difference/1000/60);
difference -= minutesDifference*1000*60
var secondsDifference = Math.floor(difference/1000);
console.log('difference = ' +
daysDifference + ' day/s ' +
hoursDifference + ' hour/s ' +
minutesDifference + ' minute/s ' +
secondsDifference + ' second/s ');
}
timeDifference(start, end);
所以,我的测试时间是下午 12:15 (todays_date)。活动日期定为 8 月 8 日中午 12:00。
我得到的结果是:
difference = -1 day/s 23 hour/s 55 minute/s 38 second/s
哪个明显错了,我哪里错了?
【问题讨论】:
-
difference = date2 - date1- 如果您使用start/end而不是1/2会更清晰 -
为什么要将时间除以 1000?为什么不知道确切的时间?
标签: javascript html jquery unix-timestamp