【问题标题】:Difference in time between two dates in javascript?javascript中两个日期之间的时间差?
【发布时间】:2017-05-16 04:01:40
【问题描述】:

我正在尝试使用flipclock.js 为 2017 年 1 月 20 日下午 12:00 左右的就职典礼制作倒计时时钟

如何计算当前时间与该日期/时间之间的差异(以秒为单位)?

我目前有:

var inauguration = new Date("January 20, 2017 12:00:00");
var now = Date.now();
var diff = inauguration - now;
var clock = $('#clock').FlipClock(diff, {
    countdown: true,
    clockFace: "DailyCounter"
});

搞定了:

    var inauguration = new Date(2017, 00, 20, 12, 0, 0, 0);
    var now = Date.now();
    var diff = inauguration.getTime() - now;
    diff = diff / 1000;
    var clock = $('#clock').FlipClock(diff, {
        countdown: true,
        clockFace: "DailyCounter"
    });

【问题讨论】:

  • @Dalorzo 好吧,不。这是不同的东西。
  • 哈哈是的,虽然我认为它与@Dalorzo 链接的有点不同。我们得到了它与下面的答案一起工作。团队合作成就梦想:D
  • 创建日期时,不要解析字符串,直接将参数传递给 Date 构造函数:new Date(2017,0,20,12)。鉴于内置解析主要依赖于实现,因此输入更少且问题更少。 ;-)

标签: javascript jquery date flipclock


【解决方案1】:

目前inauguration 是一个Date 对象。您可以通过.getTime() 函数获取秒数。你需要改变:

var diff = inauguration.getTime() - now;
//---------------------^^^^^^^^^^

你的工作代码应该是:

var inauguration = new Date(2017, 00, 20, 12, 0, 0, 0);
var now = Date.now();
var diff = inauguration.getTime() - now;
diff = diff / 1000;
var clock = $('#clock').FlipClock(diff, {
    countdown: true,
    clockFace: "DailyCounter"
});

getTime() 的想法是解决方案的一部分,加上其他一些小的更改,上面的代码现在可以工作了。

此外,原始实现也可以:

var inauguration = new Date("January 20, 2017 12:00:00");
var now = Date.now();
var diff = (inauguration.getTime() - now) / 1000;
var clock = $('#clock').FlipClock(diff, {
  countdown: true,
  clockFace: "DailyCounter"
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.js"></script>
<div id="clock"></div>

【讨论】:

  • 嗯......这给了我 18693 天。知道有什么问题吗?
  • 我看了这个就知道了:stackoverflow.com/questions/2024198/…
  • @ParkerThomas 告诉我有什么问题,我会更新我的答案,以便您接受。
  • 但是,是的...我提出了使用.getTime() 的想法,对吗? :)
  • FWIW,没有必要打电话给.getTime()。日期对象会自动转换为数字。 IE。 inauguration.getTime() - nowinauguration - now 产生相同的结果。明确一点仍然很好,但这不是必要
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2014-01-17
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2017-09-14
相关资源
最近更新 更多