从jquery中的开始日期计算结束日期
calculating end date from start date in jquery
我需要在给定开始日期和持续时间的情况下计算结束日期。开始日期是日期,持续时间是年数。因此结束日期为:start date + duration - 1 day
。
例如,开始日期为15/06/2012
,持续时间为12个月,则结束日期将为14/06/2013
。
我们如何才能做到这一点?
我总是创建7个函数来处理JS中的日期:addSeconds、addMinutes、addHours、addDays、addWeeks、addMonths、addYears。
您可以在此处看到一个示例:http://jsfiddle.net/tiagoajacobi/YHA8x/
如何使用:
var now = new Date();
console.log(now.addWeeks(3));
console.log(now.addYears(1));
console.log(now.addDays(-20));
以下是功能:
Date.prototype.addSeconds = function(seconds) {
this.setSeconds(this.getSeconds() + seconds);
return this;
};
Date.prototype.addMinutes = function(minutes) {
this.setMinutes(this.getMinutes() + minutes);
return this;
};
Date.prototype.addHours = function(hours) {
this.setHours(this.getHours() + hours);
return this;
};
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + days);
return this;
};
Date.prototype.addWeeks = function(weeks) {
this.addDays(weeks*7);
return this;
};
Date.prototype.addMonths = function (months) {
var dt = this.getDate();
this.setMonth(this.getMonth() + months);
var currDt = this.getDate();
if (dt !== currDt) {
this.addDays(-currDt);
}
return this;
};
Date.prototype.addYears = function(years) {
var dt = this.getDate();
this.setFullYear(this.getFullYear() + years);
var currDt = this.getDate();
if (dt !== currDt) {
this.addDays(-currDt);
}
return this;
};
你不能在jQuery中这样做,你必须用Javascript这样做:
<script type="text/javascript">
// Todays date in milliseconds
var today=new Date().getTime();
// Add milliseconds in a year (minus one day) to todays date
var yearLater=new Date(today + ((31557600 - 86400) * 1000));
document.write(yearLater);
</script>
您不需要jQuery来添加日期。Javascript足以做到这一点。
var myDate=new Date(year,month,date,0,0,0).getTime();
var day_milli= 1000*60*60*24;
var newDate=new Date(myDate + day_milli * (duration -1));
alert(newDate);
Javascript Date对象的一个经常被忽略的特性是,将单个日期属性(日期、月份、年份等)设置为超出其正常范围的值将自动调整其他日期属性,使生成的日期有效。
例如,如果d
是一个日期,那么您可以执行d.setDate (d.getDate () + 20)
,d
将是20天后的日期,并根据需要适当调整月份甚至年份。
使用此功能,以下函数获取开始日期和持续时间对象,并返回指定时间段后的日期:
function dateAfter (date, duration) {
if (typeof duration === 'number') // numeric parameter is number of days
duration = {date:duration};
duration.year && date.setYear (date.getYear () + duration.year);
duration.month && date.setMonth (date.getMonth () + duration.month);
duration.date && date.setDate (date.getDate () + duration.date);
return date;
}
// call as follows :
var date = dateAfter (new Date (2012, 5, 15), {year: 1}); // adds one year
console.log (date);
date = dateAfter (date, {month:5, date: 4}); // adds 5 months and 4 days
console.log (date);
date = dateAfter (date, 7 * 4); // adds 4 weeks
console.log (date);
// to return the end date asked by the op, use
var date = dateAfter (new Date (2012, 5, 15), {year: 1, date: -1});
相关文章:
- 以日期计算的天数更改日期格式
- Jquery日期计算JQUERY4U
- 如何使用下拉菜单修复jquery日期选择器日期计算功能
- JavaScript/jQuery:格式化日期计算结果的最佳方式
- 从jquery中的开始日期计算结束日期
- 在 JavaScript 日期计算中排除周末
- JavaScript 日期计算与月差
- Javascript:错误的日期计算
- 如何使用从日期到离开日期计算经验
- 如何从 JavaScript 中的日期计算第 5 个日期
- 时刻.js“无效日期”计算时差
- JavaScript 日期计算事件
- 随机日期计算引导数据选取器,将天数添加到特定日期
- 如何在Microsoft CRM 2011中根据出生日期计算年龄(以年和月为单位)
- 使用javascript执行一些日期计算/比较
- 如何根据月从两个日期计算天数
- 根据出生日期计算年龄,日期格式为年月日
- JavaScript日期计算不起作用
- 在给定日期计算一天的公式可以正常工作,但不适用于某些特定日期
- Jquery日期计算不工作的克隆