【问题标题】:Javascript new Date() - Get seconds until end of the dayJavascript new Date() - 获取秒数直到一天结束
【发布时间】:2014-08-01 20:43:15
【问题描述】:

使用基于 javascript-canvas 的时钟(经典模拟时钟视图),同时在时钟下方显示当前日期。

我已经有这段代码可以在 javascript 中获取当前时间:

   // get current time
    var date = new Date();
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();
    hours = hours > 12 ? hours - 12 : hours;
    var hour = hours + minutes / 60;
    var minute = minutes + seconds / 60;

效果很好,只是我不知道如何在一天结束之前以秒为单位获取数字,所以我可以在 00:00 运行 ajax 请求来更新当前日期。

问题是,如何在 javascript 中以秒为单位轻松获取数字?

我计划在时钟加载剩余秒数后启动一个 setTimeout() 函数,以便在需要时更新日期。

【问题讨论】:

  • 你如何显示时钟?我猜你每秒更新一次,对吧?为什么不对日期做同样的事情。每秒更新一次,它会自动更新到新的一天。
  • @putvande 我不更新时钟,我只是将光标移动到一个半径范围内 setInterval(1000)。

标签: javascript date settimeout


【解决方案1】:

我假设您要更改的日期不是来自这些值。您需要在与此时钟不直接相关的某个地方进行更改吗?

我建议添加一个函数来检查日期是否已更改,并在时钟刷新时包含它。

无论如何,让一天结束的秒数应该是这样的

var secondsUntilEndOfDate = ( (24*60*60) - ( (hours*60*60) + (minutes*60) + seconds ) );

Javascript:

var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var secondsUntilEndOfDate = (24*60*60) - (h*60*60) - (m*60) - s;

【讨论】:

  • 问题是,我不想检查每一秒,如果一天发生了变化,这就是设置一个 setTimeout() 函数的想法,其中的秒数直到一天结束。我可以用 php 生成剩下的秒数,但我想知道它是否也很容易用 javascript 实现,因为我在网上没有找到任何关于它的信息。
  • 聪明而直接的答案!
  • @lickmycode 不过你可以。 setTimeout() 不可靠。延伸阅读:developer.mozilla.org/en-US/docs/Web/API/…
  • 更简短的说法是:-3600*h-60*m-s+86400
【解决方案2】:

对于 GMT+0,它将是

const secondUntilEndOfTheDay = 86400 - Math.floor(new Date() / 1000) % 86400;

【讨论】:

    猜你喜欢
    • 2014-12-18
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多