js计算时间差(js时间加减)

牵着乌龟去散步 百科 13 0

大家好,今天来为大家解答js计算时间差这个问题的一些问题点,包括js时间加减也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

本文目录

  1. js两个日期比较相差多少天实例
  2. js如何获取时间
  3. js日期相减求天数 精确到秒

一、js两个日期比较相差多少天实例

首先来分析一个问题,两个日期是什么格式的?假设是字符串格式:

可能是:2018/04/20,也可能是:2018/04/20 12:00:00

首先看看不含时间部分的日期格式计算:

varaDate=newDate('2018/04/23');//通过日期字符串,初始化之一个日期对象

varbDate=newDate('2018/04/25');//同上,初始化第二个日期对象

varaDay=24*60*60*1000;//完整一天有24小时,将小时换算成毫秒时间戳

vardiffDay=(bDate-aDate)/aDay;//计算间隔天数(注意日期隐式转换)

console.log(diffDay);//2,23日-25日间隔2天

然后再来看看包含时间部分的日期格式计算:

然后再来看看包含时间部分的日期格式计算:

varaDate=newDate('2018/04/23');

varbDate=newDate('2018/04/2512:00:00');//包含时间的日期字符串

vardiffDay=(bDate-aDate)/aDay;

console.log(diffDay);//2.5,自然计算的结果

console.log(Math.floor(diffDay));//2,根据个人情况向下取整,整数天

console.log(Math.ceil(diffDay));//3,根据个人情况向上取整,整数天

希望是你想要的结果,如有疑问请追问。

希望是你想要的结果,如有疑问请追问。

二、js如何获取时间

myDate.getYear();//获取当前年份(2位)

myDate.getFullYear();//获取完整的年份(4位,1970-????)

myDate.getMonth();//获取当前月份(0-11,0代表1月)

myDate.getDate();//获取当前日(1-31)

myDate.getDay();//获取当前星期X(0-6,0代表星期天)

myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)

myDate.getHours();//获取当前小时数(0-23)

myDate.getMinutes();//获取当前分钟数(0-59)

myDate.getSeconds();//获取当前秒数(0-59)

myDate.getMilliseconds();//获取当前毫秒数(0-999)

myDate.toLocaleDateString();//获取当前日期

var mytime=myDate.toLocaleTimeString();//获取当前时间

myDate.toLocaleString();//获取日期与时间

Date.prototype.isLeapYear判断闰年

Date.prototype.Format日期格式化

Date.prototype.DateAdd日期计算

Date.prototype.DateDiff比较日期差

Date.prototype.toString日期转字符串

Date.prototype.toArray日期分割为数组

Date.prototype.DatePart取日期的部分信息

Date.prototype.MaxDayOfDate取日期所在月的更大天数

Date.prototype.WeekNumOfYear判断日期所在年的第几周

//---------------------------------------------------

//---------------------------------------------------

Date.prototype.isLeapYear= function()

return(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));

//---------------------------------------------------

//格式 YYYY/yyyy/YY/yy表示年份

//---------------------------------------------------

三、js日期相减求天数 精确到秒

myDate.getYear();//获取当前年份(2位)

myDate.getFullYear();//获取完整的年份(4位,1970-????)

myDate.getMonth();//获取当前月份(0-11,0代表1月)

myDate.getDate();//获取当前日(1-31)

myDate.getDay();//获取当前星期X(0-6,0代表星期天)

myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)

myDate.getHours();//获取当前小时数(0-23)

myDate.getMinutes();//获取当前分钟数(0-59)

myDate.getSeconds();//获取当前秒数(0-59)

myDate.getMilliseconds();//获取当前毫秒数(0-999)

myDate.toLocaleDateString();//获取当前日期

varmytime=myDate.toLocaleTimeString();//获取当前时间

myDate.toLocaleString();//获取日期与时间

Date.prototype.isLeapYear判断闰年

Date.prototype.Format日期格式化

Date.prototype.DateAdd日期计算

Date.prototype.DateDiff比较日期差

Date.prototype.toString日期转字符串

Date.prototype.toArray日期分割为数组

Date.prototype.DatePart取日期的部分信息

Date.prototype.MaxDayOfDate取日期所在月的更大天数

Date.prototype.WeekNumOfYear判断日期所在年的第几周

//---------------------------------------------------

//---------------------------------------------------

Date.prototype.isLeapYear=function()

return(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));

//---------------------------------------------------

js计算时间差(js时间加减)-第1张图片-

//---------------------------------------------------

Date.prototype.Format=function(formatStr)

varWeek=['日','一','二','三','四','五','六'];

str=str.replace(/yyyy|YYYY/,this.getFullYear());

str=str.replace(/yy|YY/,(this.getYear()%100)>9?(this.getYear()%100).toString():'0'+(this.getYear()%100));

str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0'+this.getMonth());

str=str.replace(/M/g,this.getMonth());

str=str.replace(/w|W/g,Week[this.getDay()]);

str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0'+this.getDate());

str=str.replace(/d|D/g,this.getDate());

str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0'+this.getHours());

str=str.replace(/h|H/g,this.getHours());

str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'+this.getMinutes());

str=str.replace(/m/g,this.getMinutes());

str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'+this.getSeconds());

str=str.replace(/s|S/g,this.getSeconds());

//+---------------------------------------------------

//|求两个时间的天数差日期格式为YYYY-MM-dd

//+---------------------------------------------------

functiondaysBetween(DateOne,DateTwo)

varOneMonth=DateOne.substring(5,DateOne.lastIndexOf('-'));

varOneDay=DateOne.substring(DateOne.length,DateOne.lastIndexOf('-')+1);

varOneYear=DateOne.substring(0,DateOne.indexOf('-'));

varTwoMonth=DateTwo.substring(5,DateTwo.lastIndexOf('-'));

varTwoDay=DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf('-')+1);

varTwoYear=DateTwo.substring(0,DateTwo.indexOf('-'));

varcha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)-Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);

//+---------------------------------------------------

//+---------------------------------------------------

Date.prototype.DateAdd=function(strInterval,Number){

case's':returnnewDate(Date.parse(dtTmp)+(1000*Number));

case'n':returnnewDate(Date.parse(dtTmp)+(60000*Number));

case'h':returnnewDate(Date.parse(dtTmp)+(3600000*Number));

case'd':returnnewDate(Date.parse(dtTmp)+(86400000*Number));

case'w':returnnewDate(Date.parse(dtTmp)+((86400000*7)*Number));

case'q':returnnewDate(dtTmp.getFullYear(),(dtTmp.getMonth())+Number*3,dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds());

case'm':returnnewDate(dtTmp.getFullYear(),(dtTmp.getMonth())+Number,dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds());

case'y':returnnewDate((dtTmp.getFullYear()+Number),dtTmp.getMonth(),dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds());

//+---------------------------------------------------

//|比较日期差dtEnd格式为日期型或者有效日期格式字符串

//+---------------------------------------------------

Date.prototype.DateDiff=function(strInterval,dtEnd){

if(typeofdtEnd=='string')//如果是字符串转换为日期型

case's':returnparseInt((dtEnd-dtStart)/1000);

case'n':returnparseInt((dtEnd-dtStart)/60000);

case'h':returnparseInt((dtEnd-dtStart)/3600000);

case'd':returnparseInt((dtEnd-dtStart)/86400000);

case'w':returnparseInt((dtEnd-dtStart)/(86400000*7));

case'm':return(dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12)-(dtStart.getMonth()+1);

case'y':returndtEnd.getFullYear()-dtStart.getFullYear();

//+---------------------------------------------------

//|日期输出字符串,重载了系统的toString ***

//+---------------------------------------------------

Date.prototype.toString=function(showWeek)

varstr=myDate.toLocaleDateString();

varWeek=['日','一','二','三','四','五','六'];

str+='星期'+Week[myDate.getDay()];

//+---------------------------------------------------

//|格式为:YYYY-MM-DD或YYYY/MM/DD

//+---------------------------------------------------

varsDate=DateStr.replace(/(^\s+|\s+$)/g,'');//去两边空格;

if(sDate=='')returntrue;

//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''

//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式

vars=sDate.replace(/[\d]{4,4}[\-/]{1}[\d]{1,2}[\-/]{1}[\d]{1,2}/g,'');

if(s=='')//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D

vart=newDate(sDate.replace(/\-/g,'/'));

if(ar[0]!=t.getYear()||ar[1]!=t.getMonth()+1||ar[2]!=t.getDate())

//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');

//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');

//+---------------------------------------------------

//+---------------------------------------------------

varreg=/^(\d+)-(\d{1,2})-(\d{1,2})(\d{1,2}):(\d{1,2}):(\d{1,2})$/;

vard=newDate(r[1],r[2],r[3],r[4],r[5],r[6]);

if(d.getFullYear()!=r[1])returnfalse;

if(d.getMonth()!=r[2])returnfalse;

if(d.getDate()!=r[3])returnfalse;

if(d.getHours()!=r[4])returnfalse;

if(d.getMinutes()!=r[5])returnfalse;

if(d.getSeconds()!=r[6])returnfalse;

//+---------------------------------------------------

//+---------------------------------------------------

Date.prototype.toArray=function()

myArray[0]=myDate.getFullYear();

myArray[4]=myDate.getMinutes();

myArray[5]=myDate.getSeconds();

//+---------------------------------------------------

//|y年m月d日w星期ww周h时n分s秒

//+---------------------------------------------------

Date.prototype.DatePart=function(interval)

varWeek=['日','一','二','三','四','五','六'];

case'y':partStr=myDate.getFullYear();break;

case'm':partStr=myDate.getMonth()+1;break;

case'd':partStr=myDate.getDate();break;

case'w':partStr=Week[myDate.getDay()];break;

case'ww':partStr=myDate.WeekNumOfYear();break;

case'h':partStr=myDate.getHours();break;

case'n':partStr=myDate.getMinutes();break;

case's':partStr=myDate.getSeconds();break;

//+---------------------------------------------------

//|取得当前日期所在月的更大天数

//+---------------------------------------------------

Date.prototype.MaxDayOfDate=function()

vardate1=(newDate(ary[0],ary[1]+1,1));

vardate2=date1.dateAdd(1,'m',1);

varresult=dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));

//+---------------------------------------------------

//|取得当前日期所在周是一年中的第几周

//+---------------------------------------------------

Date.prototype.WeekNumOfYear=function()

document.write('<scriptlanguage=VBScript\>\n');

document.write('myDate=Datue(''+month+'-'+day+'-'+year+'')\n');

document.write('result=DatePart('ww',myDate)\n');

//+---------------------------------------------------

//|格式MM/dd/YYYYMM-dd-YYYYYYYY/MM/ddYYYY-MM-dd

//+---------------------------------------------------

varconverted=Date.parse(DateStr);

//vardelimCahar=DateStr.indexOf('/')!=-1?'/':'-';

vararys=DateStr.split('-');

myDate=newDate(arys[0],--arys[1],arys[2]);

若要显示:当前日期加时间(如:2009-06-1212:00)

varyear=now.getFullYear();//年

varmonth=now.getMonth()+1;//月

if(mm<10)clock+='0';

这是我博客里的一篇文章。上边有清晰的思路。你自己改改。

关于js计算时间差的内容到此结束,希望对大家有所帮助。

标签: 时间差 时间 计算

抱歉,评论功能暂时关闭!