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 }