`
wangyanlong0107
  • 浏览: 502759 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

【转】 JS计算日期天数之差

    博客分类:
  • js
 
阅读更多

做项目的时候碰到一个问题,就是要计算2个日期之间的天数之差,于是上网搜索了一下,找到了解决方案,代码如下:

//计算日期之差
function getDays(strDateStart,strDateEnd){
   
var strSeparator = "-"//日期分隔符
   var oDate1;
   
var oDate2;
   
var iDays;
   oDate1
= strDateStart.split(strSeparator);
   oDate2
= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0] + "-" + oDate1[1] + "-" + oDate1[2]);
   var strDateE = new Date(oDate2[0] + "-" + oDate2[1] + "-" + oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数
 

   return iDays ;
}

 

注意标红的两句话,也有写作为:

  var strDateS = new Date(oDate1[0] + "/" + oDate1[1] + "/" + oDate1[2]);

  var strDateE = new Date(oDate2[0] + "/" + oDate2[1] + "/" + oDate2[2]);

    因为平时调试页面时都是用的Firefox浏览器,写完上面代码一运行,ok,没有问题,能够正确计算,于是心中窃喜,又一次迅速的解决了一个问题;但是鉴于平时被浏览器兼容性骚扰的死去活来,本人重新将本段js放到IE下运行,没想到悲剧的事情还是发生了,IE浏览器竟然无法正确获取

  var strDateS = new Date(oDate1[0] + "-" + oDate1[1] + "-" + oDate1[2]);

    调试alert(strDateS )出来的竟然是NaN,对象有误,心情一下失落起来,浏览器你就不能让我省点心吗?,无奈,只能翻出JS参考手册,查找Date()对象,查出如下:

  dateObj = new Date();
  dateObj = new Date(dateVal);
  dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) ;

    大家有没有发现跟我上面所写代码不一样的地方?对,竟然没有dateObj = new Date(year+"-"+ month+"-"+ date) ;这种创建方式,那火狐是如何执行成功的?瞬间我就对火狐的强大感到“震精”!于是,将代码改为如下:

  var strDateS = new Date(oDate1[0], oDate1[1], oDate1[2]);

  var strDateE = new Date(oDate2[0], oDate2[1] , oDate2[2]);

    Ok,IE和火狐都运行正常!可正当我以为再也没有问题的时候,更大的悲剧悄然而至,当我输入两个2012-02-29和2012-03-01日期时,算出的结果竟然是0天,经过测试,发现只要是跨月的计算,结果总会出错,同月的不会,无奈,再次翻阅JS参考手册,发现JS对month参数的定义如下:

 month
 必选项。表示的月份,是从 0 到 11 之间的整数( 1 月至 12 月)。

  原因终于找到,原来月份是从0开始算的,又犯了一个低级错误,于是修改JS代码如下:

  var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);

  var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);

   这下完美解决!

分享到:
评论

相关推荐

    kettle中使用js计算两个日期之间的天数.txt

    kettle中使用js计算两个日期之间的天数

    日期计算、倒计时、天数计算

    例如,要计算两个日期之间的天数差,可以这样操作: ```python from datetime import datetime date1 = datetime(2022, 1, 1) date2 = datetime(2023, 12, 31) delta = date2 - date1 print(delta.days) # 输出:...

    JS 获得两个时间间隔天数

    在这个方法中,我们将探讨如何利用JavaScript的内置Date对象以及一些基本的算术运算来计算日期间隔。 首先,我们需要创建两个Date对象,分别表示我们想要比较的两个日期。例如: ```javascript var date1 = new ...

    js内计算日期差

    #### 3.1 计算日期差(小时/天) 文件中还提供了一个`dateDiff`函数来计算两个日期之间的差值,以小时或天为单位: ```javascript function dateDiff(date1, date2) { var type1 = typeof date1, type2 = typeof ...

    纯js计算两日期间的天数差demo,兼容IE8

    纯js计算两日期间的天数差demo,直接可用。兼容IE8,火狐,谷歌。,亲测可用

    javaScript和java中日期相减得出天数方案

    - 最后,通过计算毫秒数之差并除以一天的毫秒数来得到天数。 #### Java中的日期相减方案 在Java中,计算两个日期之间的天数差同样是一个常见的需求。这里提供了一种方法来实现这一功能。 1. **基本原理**: - ...

    计算两个日期相隔天数并减去节假日

    计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等

    JavaScript天数计算

    通过以上知识点的学习,我们可以了解到如何在JavaScript中进行日期和时间的计算,包括创建日期对象、获取日期值、计算日期差以及实现定时更新等功能。这些知识对于开发涉及时间计算的应用非常有用。

    计算天数和查询未来天数的软件

    "计算天数和查询未来天数的软件"是一款专门针对这一需求而设计的应用程序,它能够帮助用户轻松计算历史日期之间的天数差,以及预测未来的日期。这类软件在日常生活、工作计划、项目管理、学业追踪等场景中都有广泛的...

    js计算日期差

    本篇文章将基于提供的代码片段来深入探讨如何使用JavaScript来计算两个日期之间的天数差。 #### 核心函数:`daysBetween(DateOne, DateTwo)` 此函数用于计算两个日期之间的天数差。参数`DateOne`和`DateTwo`都是...

    两个时间间隔的天数

    根据给定文件的信息,我们可以提炼出以下...这个函数可以帮助开发者快速计算两个日期之间的天数差,适用于各种需要处理日期计算的场景。同时,我们还扩展了一些与日期操作相关的基础知识,帮助加深对日期处理的理解。

    指定两个日期计算相隔的天数

    - 计算日期差时要考虑日期的顺序,因为"日期2 - 日期1"和"日期1 - 日期2"的结果是相反的。 - 跨越闰年和不同月份的天数差异也需要考虑,比如2月29日的情况。 - 在SQL中,`DATEDIFF`函数的结果可能是负数,取决于...

    javaScript 计算两个日期的天数相差(示例代码)

    总结来说,本文提供了两个使用JavaScript计算日期差的技巧。一个是基于日期字符串的计算,另一个是基于当前日期加上一定天数后的计算。这些技巧在实际开发中非常实用,特别是在处理涉及日期计算的场景。在使用这些...

    js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)

    在JavaScript中,时间计算是日常开发中常见的任务,特别是在处理用户界面交互或者数据处理时。本文将详细讲解如何在JavaScript中进行日期的加减运算,以及如何返回当前时间后一个星期的日期,并确保结果以"yyyy-MM-...

    计算天数精确到分钟.rar

    "计算天数精确到分钟"这个主题涉及到如何在代码中准确地计算日期间隔,并且细化到分钟级别。在不同的编程语言中,都有相应的库和函数来支持这种操作。 在Python中,我们可以使用内置的`datetime`模块来处理日期和...

    js计算两个时间的时间差

    ### 描述:“js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差” 虽然描述部分重复了“js计算时间差”这一短语,但从上下文中我们可以理解到,这段...

    JS简单获取日期相差天数的方法

    除了本文介绍的方法外,还可以通过使用其他在线工具来帮助我们计算日期差。例如,提供的链接中包含了多个在线日期和天数计算器,这些工具可以通过网页直接进行日期运算,无需编写代码。这为不熟悉JavaScript或者需要...

    计算日期相隔的时间,天数,分钟,秒数

    本文将深入探讨如何在各种编程语言中计算日期相隔的时间,包括天数、分钟和秒数,以及时间间隔的计算方法。 首先,让我们理解日期和时间的基本概念。日期通常表示一年中的某一天,而时间则涉及小时、分钟和秒。两者...

    计算日期差

    计算日期差的基本方法是创建两个`datetime`对象,然后用减法操作符`-`来获取它们之间的差值,结果会是一个`timedelta`对象,表示两个日期之间的天数。例如: ```python from datetime import datetime date1 = ...

    js计算两个日期相差几周

    2. **计算日期差** - 使用 `Math.abs()` 函数获取两个日期对象之间的时间差(单位为毫秒)。 - 将毫秒转换为天数:`(objDate1 - objDate2) / (1000 * 60 * 60 * 24)`。 - 为了确保计算结果包含起始日期和结束日期...

Global site tag (gtag.js) - Google Analytics