【问题标题】:Count days, hours and minutes to a specific date with javascript使用javascript计算特定日期的天数、小时数和分钟数
【发布时间】:2016-03-23 09:42:14
【问题描述】:

我有这个脚本,它计算从现在到 5 月 8 日 23:59:59 到 5 月 9 日之前 1 秒的天数、小时数和分钟数,并将其显示为带有 FlipClock 的计数器,但出于某种原因它缺少 2 天零 1 小时。从今天 3 月 23 日 10:37(24 小时制)开始,有 48 天 13 小时 23 分钟,但我的时钟显示 46 天 12 小时 23 分钟。

应该很简单,但我不知道这两天零一小时在哪里消失了。

我有这个javascript:

// Grab the current date
   var currentDate = new Date();

// Set the date to May 8
   var futureDate = new Date(2016, 04, 08, 23, 59, 59);

 // Calculate the difference in seconds between the future and current date
   var diff = futureDate.getTime() / 1000 - currentDate.getTime() / 1000;

   var clock = new FlipClock($('.clock'), diff, {
       clockFace: 'DailyCounter',
       countdown: true,
       showSeconds: false,
       language: 'da'
   });

【问题讨论】:

  • 记住 javascript 月份从 00 开始... :(
  • 时钟是正确的,有 46 天,并且更改(取决于您当前的时区)到您的结束日期。请参阅here 了解确切的区别。我不确定你从哪里得到了 48 天。
  • @RoryMcCrossan - 谢谢......我们手动进行了重新计票,是的,时钟显示正确。我从使用柜台的人那里得到了 48,但他们必须从午夜到 5 月 9 日计算今天的日期。但我仍然错过了一个小时,但这一定与 DST 有关。
  • 是的,我想这将是夏令时的差异,因为在接下来的一两周内时钟会改变一个小时。

标签: javascript jquery date flipclock


【解决方案1】:

如果我必须对时间做任何事情,我通常使用momentjs,这并不意味着你必须这样做,但我知道它可以正常工作并且足以满足我的标准。

持续时间格式不是 Moment js 的一部分,它是一个特性。你可以自己滚动一个,但 John Madhavan-Reese 已经有了done this

var futureDate = moment(new Date(2016, 04, 08, 23, 59, 59));

setInterval(function() {
  var ms = moment().diff(moment(futureDate));
  var duration = moment.duration(ms).format("yy-MM-dd hh:mm:ss");
  $("#time").text(duration);
}, 200);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>

<span id="time"><span>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    相关资源
    最近更新 更多