计算结束日期从月和开始日期JQuery
Calculate end date from month and start date JQuery
我有一个函数,我从开始日期和月份(任期)计算结束日期。例如,我有开始日期2014-05-05
,并在其中添加1个月,那么它应该显示2014-06-05
。这对我来说是正确的。但如果我加上2014-02-01
,它显示的是2014-03-01
,这是错误的。它应该显示2014-02-28
。
下面是我的功能:
function getEndDate() {
var start_date = $("#start_date").val();
var tenure = $("#tenure").val();
if (/^'d{4}'-'d{2}'-'d{2}$/i.test(start_date)) {
var parts = start_date.split("-");
var year = parts[0] && parseInt(parts[0], 10);
var month = parts[1] && parseInt(parts[1], 10);
var day = parts[2] && parseInt(parts[2], 10);
var duration = parseInt(tenure, 10);
if (day <= 31 && day >= 1 && month <= 12 && month >= 1) {
var expiryDate = new Date(year, month+duration, day);
expiryDate.setFullYear(expiryDate.getFullYear());
day = ('0' + expiryDate.getDate()).slice(-2);
month = ('0' + (expiryDate.getMonth())).slice(-2);
year = expiryDate.getFullYear();
$("#end_date").val(year + "-" + month + "-" + day);
} else {
// display error message
}
}
}
请告诉我哪里错了
当您添加日期时,最简单的方法是对毫秒进行求和,就像我之前制作的示例一样,或者像这样操作date对象:
date = new Date(); //current date
future_date = new Date(date.getYear(), date.getMonth() + 1, date.getDay(), date.getHours(), date.getMinutes(), date.getSeconds());
//date -> Wed May 28 2014 21:43:52 GMT+0200 (CEST)
//future_date -> Sun Jun 03 114 21:43:52 GMT+0200 (CEST)
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- jQuery Datepicker从日期开始设置默认值
- 高图表日期时间从错误的日期开始
- Javascript - 从当前日期开始的上个月计算
- 正在加载动态日历以在一个月的正确日期开始
- 如何在Moment.js中从日期开始获取一个月中的星期
- javascript从给定日期开始按月递增日期
- 从单击日期开始将数据放入输入类型中
- 用于调查的 Javascript:从页面加载时从出生日期开始计算年龄 从预填充信息加载
- 日期选取器日期范围:最大日期的最小日期 = 开始日期 + 1 天
- 谷歌时间线图表从错误的日期开始
- jquery从格式01/02/2010的日期开始修剪前导零
- Javascript从日期开始获取星期几
- 如何使用Javascript AngularJS从日期选择器中的当前日期开始
- 如何将日期时间分配给具有间隔和日期开始的高图
- 使用flipclock.js从一个特定的日期开始倒数
- 在代码编写器中验证开始和结束日期.开始日期小于结束日期
- 在ng-repeat Angularjs中显示从日期开始的时间
- 从日期开始增加变量Javascript
- 如何选择从开始日期到结束日期(即不包括结束日期)开始的序列化数据