【发布时间】:2013-03-04 15:27:21
【问题描述】:
我们正在设计在线许可申请
我需要计算活动日期和申请日期之间的天数 活动日期为 9 月 16 日和 12 月 31 日。
Java 脚本来计算天数
【问题讨论】:
-
请先查看this。你的问题是缺乏信息,没有细节,没有上下文..
标签: javascript date
我们正在设计在线许可申请
我需要计算活动日期和申请日期之间的天数 活动日期为 9 月 16 日和 12 月 31 日。
Java 脚本来计算天数
【问题讨论】:
标签: javascript date
另一种方法是比较日期,直到它们相同。可能会慢很多,所以除非你想用额外的细节来扩展比较,否则不要使用它。
小提琴:http://jsfiddle.net/rudiedirkx/Szvfd/
Date.prototype.getYMD = function() {
return this.getFullYear() + '-' + (this.getMonth()+1) + '-' + this.getDate();
};
Date.prototype.getDaysDiff = function(d2) {
var d1 = this,
delta = d1 < d2 ? +1 : -1;
var days = 0;
while (d1.getYMD() != d2.getYMD()) {
days++;
d1.setDate(d1.getDate() + delta);
}
return delta * days;
}
d1 = new Date('October 16 2012');
d2 = new Date('November 7 2012');
console.log(d1.getDaysDiff(d2)); // 22
console.log(d2.getDaysDiff(d1)); // -22
【讨论】:
通过使用 Javascript 日期对象,您可以使用以下功能:
var firstDate = new Date("October 16, 1975 11:13:00");
var secondDate = new Date("October 14, 1975 11:13:00");
function dateDifference(start, end)
{
return Math.round((start-end)/(1000*60*60*24));
}
alert(dateDifference(firstDate.getTime(), secondDate.getTime()));
【讨论】:
start 可能带有夏令时,end 可能不带。所以你的结果可能是 19.04 或 18.96。这就是为什么你应该把它弄圆(而不是地板)。