我想得到一个比另一个 Date 对象晚 30 分钟的 Date 对象。我如何用 JavaScript 做到这一点?
原文由 Morgan Cheng 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想得到一个比另一个 Date 对象晚 30 分钟的 Date 对象。我如何用 JavaScript 做到这一点?
原文由 Morgan Cheng 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
使用图书馆
如果您正在进行大量日期工作,您可能需要查看 JavaScript 日期库,例如 Datejs 或 Moment.js 。例如,对于 Moment.js,这很简单:
香草Javascript
这就像 混沌的答案,但在一行中:
其中
diff
与oldDateObj
的时间相差几分钟。它甚至可以是负面的。或者作为可重用函数,如果您需要在多个地方执行此操作:
以防万一这不是很明显,我们将分钟乘以
60000
的原因是将分钟转换为毫秒。小心使用 Vanilla Javascript。日期很难!
您可能认为可以将日期加上 24 小时以获得明天的日期,对吗? 错误的!
事实证明,如果用户遵守夏令时,一天不一定是 24 小时。一年有一天只有 23 小时,一年有一天有 25 小时。例如,在美国和加拿大的大部分地区,2014 年 11 月 2 日午夜后 24 小时仍是 11 月 2 日:
这就是为什么如果您必须为此做很多工作, 使用上述库之一是更安全的选择。
下面是我编写的此函数的更通用版本。我仍然建议使用库,但这对您的项目来说可能有点矫枉过正/不可能。语法仿照 MySQL DATE_ADD 函数。
工作 jsFiddle 演示。