我有一个事件,该事件日期和时间的格式为 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。
我从上面得到的结果是:
差异 = -1 天/秒 23 小时/秒 55 分钟/秒 38 秒/秒
这显然是错误的,我错在哪里?
最佳答案
刚刚将除法除以 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);
关于javascript - 两个 UNIX 时间戳之间的差异(以天、小时、分钟和秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63264078/