gpt4 book ai didi

javascript - 如何计算两个日期之间的天数?

转载 作者:IT老高 更新时间:2023-10-28 11:03:07 28 4
gpt4 key购买 nike

例如,给定输入框中的两个日期:

<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>

<script>
alert(datediff("day", first, second)); // what goes here?
</script>

如何在 JavaScript 中获取两个日期之间的天数?

最佳答案

这是 datediff快速而肮脏的实现,作为解决问题中提出的问题的概念证明。它依赖于这样一个事实,即您可以通过减去它们来获得两个日期之间经过的毫秒数,这会将它们强制转换为原始数值(自 1970 年初以来的毫秒数)。

/**
* Take the difference between the dates and divide by milliseconds per day.
* Round to nearest whole number to deal with DST.
*/
function datediff(first, second) {
return Math.round((second - first) / (1000 * 60 * 60 * 24));
}

/**
* new Date("dateString") is browser-dependent and discouraged, so we'll write
* a simple parse function for U.S. date format (which does no error checking)
*/
function parseDate(str) {
var mdy = str.split('/');
return new Date(mdy[2], mdy[0] - 1, mdy[1]);
}

alert(datediff(parseDate(first.value), parseDate(second.value)));
<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>

您应该知道,“普通”日期 API(名称中不带“UTC”)在用户浏览器的本地时区运行,因此,一般来说,如果您的用户位于您所指定的时区,您可能会遇到问题不要指望,您的代码将不得不处理夏令时转换。您应该仔细阅读 Date 对象及其方法的文档,对于任何更复杂的内容,强烈考虑使用为日期操作提供更安全和更强大 API 的库。

此外,出于说明目的,该片段使用 named access on the window object为简洁起见,但在生产中您应该使用标准化的 API,例如 getElementById ,或者更有可能是一些 UI 框架。

关于javascript - 如何计算两个日期之间的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542938/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com