任何人都可以建议使用jQuery插件来计算两个日期之间的差异(日期也可能包含时间)并将其显示为“32天”,“13小时”,“20分钟”等?
答案 0 :(得分:11)
您可以使用 native JavaScript Date对象添加,减去和执行许多其他操作。对于您的大多数需求,powerful enough。如果使用它,您可以节省千字节的页面大小,并使每个人都能理解代码(可能有90%的JavaScript开发人员从未使用过任何插件来计算日期)
我讨厌Date对象的事情是它没有built-in formatted output。
例如,如果没有字符串解析,您无法告知星期或月份名称的本地化日期。然后datejs来帮助你。
var msMinute = 60*1000,
msDay = 60*60*24*1000,
a = new Date(2012, 2, 12, /* days, hours*/ 23, 59, 59),
b = new Date("2013 march 12"), /* string */
c = new Date(), /* now */
d = new Date(c.getTime() + msDay - msMinute); /* tomorrow - minute */
console.log(a.getUTCHours());
console.log(typeof (b - a + 1000));
console.log(Math.floor((b - a) / msDay) + ' full days between');
console.log(Math.floor(((b - a) % msDay) / msMinute) + ' full minutes between');
console.log('Today is ' + c.getDay() + ' day of week');
console.log('Tomorrow is ' + d.getDay() + ' day of week');
console.log('Your timezone offset is ' + c.getTimezoneOffset() + ' minutes');
Easily calculate days till Christmas
而且,有时你可以期待一个笑话中有更多的真相
答案 1 :(得分:6)
这是一个非常简单的Javascript实现,我刚刚入侵了。您可以将数学扩展到几个月或几年,或者根据需要删除1个值的复数。
var dateDiff = function ( d1, d2 ) {
var diff = Math.abs(d1 - d2);
if (Math.floor(diff/86400000)) {
return Math.floor(diff/86400000) + " days";
} else if (Math.floor(diff/3600000)) {
return Math.floor(diff/3600000) + " hours";
} else if (Math.floor(diff/60000)) {
return Math.floor(diff/60000) + " minutes";
} else {
return "< 1 minute";
}
};
dateDiff(new Date(1990, 1, 1), new Date(1990, 1, 13)) // -> 12 days
答案 2 :(得分:4)
我强烈建议您使用优秀的datejs framework轻松完成所有日期时间计算
答案 3 :(得分:2)
我认为jQuery EasyDate正是您所寻找的。 p>
答案 4 :(得分:1)
day1= $("#tMTLCLsDay").val();
month1= $("#tMTLCLsMnth").val();
year1= $("#tMTLCLsYr").val();
hour1= $("#tMTLCLs_HOUR").val();
min1= $("#tMTLCLs_MIN").val();
var Date1=month1+ "/" + day1+ "/" + year1+ " " + hour1 + ":" + min1+ ": 00" ;
day2= $("#tMTLCLsDay").val();
month2= $("#tMTLCLsMnth").val();
year2= $("#tMTLCLsYr").val();
hour3= $("#tMTLCLs_HOUR").val();
hour2= $("#tMTLCLs_MIN").val();
var Date2=month2+ "/" + day2+ "/" + year2+ " " + hour2 + ":" + hour2 + ": 00" ;
if(Date.parse(Date1)<Date.parse(Date2))
{
alert("Date 2 is large");
}