js计算日期相差的天数

在网站开发中,经常会遇到计算日期相差的天数,js 没有提供相应的方法,所以自己写一个,方便将来查看:

代码:

function DateDiff(sDate1, sDate2, splitStr) {    //sDate1和sDate2是2006-12-18格式
        var aDate, oDate1, oDate2, iDays;
        aDate = sDate1.split(splitStr);
        oDate1 = new Date(aDate[1] + splitStr + aDate[2] + splitStr + aDate[0]); //转换为12-18-2006格式
        aDate = sDate2.split(splitStr);
        oDate2 = new Date(aDate[1] + splitStr + aDate[2] + splitStr + aDate[0]);
        iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
        return iDays;
    }

参数解释:

sDate1:结束日期
sDate2: 开始日期
splitStr:日期的分隔符,如(2010-10-10的分隔符为“-”)这里是为了通用各种分隔符的日期格式。如果要返回天数,而不是要谁大谁小,Math.abs((oDate1 - oDate2))就计算绝对值。
以上就足以计算时间差了,以下是为了让这个更完善。

如果日期没有分隔符(如:20101210),这种情况怎么办呢,只好将其转为有分隔符的日期了,顺带附上转换日期的函数:
function convertDate(date,splitStr)//轉換日期格式
{
    var strDate = date;
   if(splitStr=="")
    {
     splitStr="-";//设置默认
    }

  if (checkInt(strDate))   {//判斷是否有分隔符
     var s1 = strDate.substring(0, 4) + splitStr;
        var s2 = strDate.substring(4, 6) + splitStr;
        var s3 = strDate.substring(6, 8);
        strDate = s1 + s2 + s3;
        //$(element).val(strDate);//如果沒有分隔符,把分隔符插入之後,賦值給文本框,類似於格式化日期
        }
        return strDate
    }

//判断是否为整型,在日期格式转换的时候用到
function checkInt(num) {//验证是否是纯数字,如果是純數字 說明沒有分隔符20141115
  var reg = /^-?\d+$/;//对正则表达式不熟,知道的朋友帮忙解释下"-?"的意思
  if (reg.test(num))   {
    return true;
  }
  else   {
    return false;
  }
}
 
时间: 2024-10-12 09:13:56

js计算日期相差的天数的相关文章

js计算日期相差天数

function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2017-9-25格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-") oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为9-25-2017格式 aDate = sDate2.split("-") oDate2

JS 计算2个日期相差的天数

<span style="font-size:18px;">function getDays(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var oDate1; var oDate2; var iDays; oDate1= strDateStart.split(strSeparator); oDate2= strDateEnd.split(strSeparator); <spa

js求两个日期相差的天数

最近做系统的时候经常要用到js有关时间,自己不是很熟悉用js编写各种有关时间.日期的代码,都是网上百度,基本可以看的懂,但是自己就是写不出来,所以用的js应该在博客记录一下,加深印象. /** * 求两个日期相差的天数 * @param startDateStr * @param endDateStr * @returns */ function getDays(startDateStr, endDateStr){ var separatorStr = "-"; var startDa

判断两个日期相差的天数

判断两个日期相差的天数 /* 判断两个日期相差的天数 */ function numOfDate(date1, date2){ //<1>计算毫秒数 var time1 = date1.getTime(); var time2 = date2.getTime(); //<2>计算相差的毫秒数 var time = Math.abs(time1 - time2);//去绝对值,不能确定传入的日期那个大 return time / 1000 / 60/ 60 / 24;// 毫秒/10

两个日期相差的天数

1 // 两个日期相差的天数 2 public int differDays(String startDateString, String endDateString) 3 throws ParseException { 4 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 5 Date start = sdf.parse(startDateString); 6 Date end = sdf.parse(endDate

Java计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

Java 计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

MySQL计算两个日期相差的天数、月数、年数

MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF(类型,开始时间,结束时间) 相差的秒数: SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) 相差的分钟数: SELECT TIMESTAMPDIFF(MINUTE,'

Python计算两个日期相差的天数

比如我们要计算2015年8月15日与2015年10月7日相差的天数,那可以这么做: import datetime d1 = datetime.date(2015,10,7) d2 = datetime.date(2015,8,15) print((d1-d2).days)