【问题标题】:How to add 24 hours to datetime object of javascript [duplicate]如何向javascript的日期时间对象添加24小时[重复]
【发布时间】:2012-11-25 14:55:51
【问题描述】:

可能重复:
Adding hours to Javascript Date object?

我有 javascript 日期时间对象。

我想在该日期时间上增加 24 小时

例如

如果是2 dec 2012 3:30:00 => 3 dec 2012 3:29:00

如果是31 dec 2012 3:30:00 => 1 jan 2013 3:29:00

有什么建议吗????

【问题讨论】:

标签: javascript datetime


【解决方案1】:

一种可能的解决方案:

new Date(new Date(myStringDate).getTime() + 60 * 60 * 24 * 1000);

【讨论】:

  • 为什么不只是var a = new Date(); a.setDate(a.getDate()+1);
  • @Ian 这与Glutamat posted 几乎相同。我的是另一种可能的解决方案。
  • 哦,当然它们都是绝对的解决方案,我只是想知道为什么没有提出基于天数的解决方案,因为这就是它的意义所在。它们肯定都有效,我只是认为.setDate 是为了白天搬家而制作的。
  • 当然,有很多可能的解决方案,我更喜欢调整ms,所以+1,但由于OP要求增加(24)小时,我只是想,为什么不给他使用小时数的解决方案,
  • @ÆtherSurfer 这没有任何意义。它根本不这样做。它完全按预期工作。 jsfiddle.net/T4Y49
【解决方案2】:

这是一种方式

var myDate = new Date("2 dec 2012 3:30:00") // your date object
myDate.setHours(myDate.getHours() + 24)
console.log(myDate) //Mon Dec 03 2012 03:30:00 GMT+0100 (Mitteleuropäische Zeit)
  • Date.setHours 允许您设置日期对象的小时数
  • Date.getHours 检索它们

在此解决方案中,它只是从您的 Date 对象中获取 Hours 添加 24 并将它们写回您的对象。

当然还有其他可能的方法可以达到相同的结果,例如

  • 调整毫秒

    • Date.getTime 为您提供自 1970 年 1 月 1 日午夜以来对象的毫秒数
    • Date.setTime 设置它们

因此,将 24 * 60 * 60 * 100086400000 毫秒添加到您的日期对象将产生相同的结果 见VisioNs 回答

  • 添加一天
    • Date.getDate 获取您的 Date 对象的月份日期
    • Date.setDate 设置它们

将其增加一,将再次导致相同的结果
正如评论中提到的Ian

所以这取决于你觉得最容易理解的东西 如果你愿意,可以看看这个 w3schools examples,以获得处理日期的起点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    相关资源
    最近更新 更多