两个unix时间戳之间的差异,以天,小时,分钟和秒为单位

时间:2020-08-05 11:19:42

标签: javascript html jquery unix-timestamp

我有一个事件,该事件的日期和时间的格式设置为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

显然哪里错了,我要去哪里错了?

1 个答案:

答案 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);