jQuery关于时间差的问题(年、月、天等)

今天做项目,遇到需要把两个日期字符串(如:2009-02-03)转换成JavaScript中日期对象Date,并求出它们相差的天数,于是在网上搜索了下,最后解决了问题。

Javascript 支持的字符串转日期对象的格式如下:

1 new Date("February 3,2009");
2 new Date("February 3,2009 10:52:03");
3 new Date(2009,1,3);
4 new Date(2009,1,3,10,52,03);
5 new Date(Date.parse("February 3,2009"));
6 new Date(Date.parse("February 3,2009 10:52:03"));
7 new Date(Date.parse("2009/02/03"));
8 new Date("2009/02/03");
9 new Date("2009/02/03 11:12:13");

输出结果:

Tue Feb 3 00:00:00 UTC+0800 2009

JQUERY好像没有对时间函数进行封装
另外,时间相减 即时间间隔 只有日、时、分、秒等的说法,貌似没有年月的说法,因为这两个都是不定值
给个参考的JS代码吧,如下

 1 function DateDiff(sDate1, sDate2){ //sDate1和sDate2是字符串 yyyy-MM-dd格式 
 2   var aDate, oDate1, oDate2, iDays, ihours, iminutes, iseconds;
 3   aDate = sDate1.split("-");
 4   oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);//转换为MM-dd-yyyy格式 
 5   aDate = sDate2.split("-");
 6   oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
 7   var timeSpan = {};
 8   var TotalMilliseconds =  parseInt(oDate1.getTime()- oDate2.getTime());//相差的毫秒数
 9   timeSpan.Days = parseInt(TotalMilliseconds / 1000 / 60 / 60 /24);
10   timeSpan.TotalHours = parseInt(TotalMilliseconds / 1000 / 60 / 60);
11   timeSpan.Hours = timeSpan.TotalHours % 24;
12   timeSpan.TotalMinutes = parseInt(TotalMilliseconds / 1000 / 60);
13   timeSpan.Minutes = timeSpan.TotalMinutes % 60;
14   timeSpan.TotalSeconds = parseInt(TotalMilliseconds / 1000);
15   timeSpan.Seconds = timeSpan.TotalSeconds % 60;
16   timeSpan.TotalMilliseconds = TotalMilliseconds;
17   timeSpan.Milliseconds = TotalMilliseconds % 1000;
18   return timeSpan;
19 }

 

posted @ 2017-05-10 14:35  微笑Tears  阅读(973)  评论(0编辑  收藏  举报