javascript - 两个 UNIX 时间戳之间的差异(以天、小时、分钟和秒为单位)

标签 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。

我从上面得到的结果是:

差异 = -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/

相关文章:

javascript - onclick 动画元素背景颜色

javascript - 一旦 div 中的内容发生更改,就重新加载页面中的 javascript

javascript - 在jquery中排序时间数组

html - 在包含在形状中的列表项之间添加水平空间

jquery - 从 Google SpreadSheet 脚本调用 jQuery

javascript - 在 React 中检测 <textarea> 调整大小事件

javascript - 为什么 video.requestPictureInPicture() 只能工作一次?

c# - 如何缩小ASPX页面

javascript - Eclipse>WST>JSDT Javascript重构重命名变量工作一半时间

javascript - 在纯 JavaScript 中一一删除 childElements