当前位置: 首页 > 面试题库 >

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

陆俊迈
2023-03-14
问题内容

如何获取JavaScript中两个日期之间的天数?例如,在输入框中指定两个日期:

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

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

问题答案:

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

// 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]);

}



function datediff(first, second) {

    // Take the difference between the dates and divide by milliseconds per day.

    // Round to nearest whole number to deal with DST.

    return Math.round((second-first)/(1000*60*60*24));

}



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进行日期处理的库。



 类似资料:
  • 问题内容: 我正在创建一个应用程序,可让您定义带有时间范围的事件。我想在用户选择或更改开始日期时自动填写结束日期。但是,我不太清楚如何获得两次之间的差异,然后如何使用该差异创建新的结束日期。 问题答案: 在JavaScript中,可以通过调用方法 或 仅在数字表达式中使用日期将日期转换为自epoc以来的毫秒数。 因此,要获得差异,只需减去两个日期。 要基于差异创建新日期,只需在构造函数中传递毫秒数

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

  • 问题内容: 在MySql数据库中有表 我的问题是,我要传递开始日期和结束日期,然后我将获得列日期,例如: 那么我将获得101,102,103 UserId的值。但是我出错了 问题答案: 这可能会更好: 也可能是保留字,对此不太确定。如果是这种情况,则您需要在其周围加反引号(前后应有一个`)

  • 返回两个日期之间相差的天数。 计算 Date 对象之间的差异(以天为单位)。 const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); getDaysDiffBetweenDates(new Date('2017-12-13'), ne

  • 问题内容: 如果我有两个日期,我该如何使用JavaScript以分钟为单位获取两个日期之间的差额? 问题答案: 您可以签出以下代码: 或舍弃秒,如果您不想舍入分钟。

  • 问题内容: 在我的应用程序中,用户应从选择日期。问题是生成此列​​表。例如,我需要 2010年至2013年 或 6月至8月 之间的所有日期(期间可能是 day , month , year )。是否有任何方法可以获取该数据? 范例:我需要 2013年1月1* 日 至2013年1月1 日之间的日期 * 2013年1月1日 2013年2月1日 2013年3月1日 2013年4月1日 2013年5月1日