【问题标题】:Counting down seconds from 1970 time in javascript在javascript中从1970年开始倒计时
【发布时间】:2016-11-28 06:21:09
【问题描述】:

我正在使用一个 API 来返回类似 deal_expiration_time:1469396377 的时间,它看起来像是从 1970 年开始的秒数。我正在尝试获得 MM/SS 倒计时 这是有角度的,所以我显然不能使用 jQuery?我已经挣扎了一段时间,对这段代码感到困惑。我正在努力使它成为input: 1469396377 | output: 08:21

function(){
  var x1, secs1 = 510;
  x1 = setInterval(function(){myFunc1(9)}, 1000);

  function myFunc1(timerId){
    var minutes = Math.floor(secs1 / 60);
    var seconds = secs1 % 60;
    $('#timer_'+timerId).html(minutes + ':' + seconds); //assuming there is a label with Id 'timer'

    secs1--;
    if(secs1 == 0){
      document.getElementById('timer_' + timerId).style.hidden = true;
      clearInterval(x1);
    }
  }
}

【问题讨论】:

  • 这是 Unix 时间,或纪元时间。您可以使用Date.now()+new Date 按照this similar question 的建议获取它。您可能需要截断毫秒数。
  • “这是有角度的,所以我显然不能使用 jQuery??” - 我不明白为什么你不能一起使用它们,但无论如何jQuery 不是日期/时间操作库,所以我不知道你为什么要在这里使用它...
  • 您可以提供更多代码吗?在您的示例中,我没有看到任何特定于 Angular 的内容。无论哪种方式,请查看stackoverflow.com/questions/12050268/…

标签: javascript jquery angularjs unix-timestamp datetime-conversion


【解决方案1】:

您可以使用Date.now() 获取当前时间,然后手动计算时间差。此函数获取给定时间和当前时间之间的差异,以秒和分钟为单位计算差异。然后将此差异格式化为倒计时字符串,然后返回。

function getTimeDifference(expirationTime) {
  var now = Date.now();
  var diff = expirationTime - now;
  var secDiff = Math.round(diff/1000);
  var minDiff = Math.round(secDiff / 60);
  var diffStr = minDiff + ":" + (secDiff - minDiff * 60);
  return diffStr
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多