我有一个事件,该事件的日期和时间的格式设置为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 pm。
我上面得到的结果是:
difference = -1 day/s 23 hour/s 55 minute/s 38 second/s
显然哪里错了,我要去哪里错了?
答案 0 :(得分:0)
只需将除以1000,然后设置一个日期,
似乎按预期工作。
我的猜测是,除以1000,实际上使两个日期都呈现为1970年的样子,因为从这两个日期开始,unix时间戳都开始了
“ 1596626215.983”
或
“ 1596888000”
是Unix中的实际日期,本质上都是错误
var todays_date = new Date().getTime();
var event_date = new Date('August 08, 20 00:20:18 GMT+00:00').getTime();
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);