在文本框中显示结束日期,用户选择的开始日期 + 使用 JavaScript 的 1 年
Display end date in textbox with User Selected Start Date + 1 year using JavaScript
例如,如果用户选择27/01/2016,"结束日期"文本框将显示27/01/2017,这是不可编辑的。最好不使用JQueryDate函数
一个解决方案是有两个日期输入。
第一个将由用户用于选择日期。一旦用户选择一个日期,这个就会消失。
第二个将是隐形的和readonly
.用户选择日期后,将使用 Date + 1y 启动并显示此日期。
你可以使用简单的javascript来添加+ 1,请参阅日期javascript对象
正如 Dionys 所说,为你的输出设置一个readonly
输入字段,如下所示:
<p>
<input type="text" id="date" />
</p>
<p>
<input type="text" id="output" readonly="readonly" />
</p>
然后,假设日期是以这种格式选择的,这是一个糟糕的跳跃,但目前我唯一能做的,有点split()
和join()
动作:
var date = document.getElementById('date');
date.addEventListener('change', function(){
var val = date.value, y = '', parts = [];
if(val) {
parts = val.split('/');
y = parts.length - 1;
parts[y] = parseInt(parts[y], 10) + 1;
document.getElementById('output').value = parts.join('/');
}
}, false);
给予或接受,只要日期与去年一起呈现,这应该运行良好。如果您发布代码链接或更新问题,我可以缩小范围以使其更准确。
小提琴
一切都取决于您的输入类型。它是来自 JavaScript 的纯Date
对象,还是只是一个格式化为 dd/MM/yyyy
的简单String
?
日期输入
这很简单 - 唯一要做的就是增加一年,然后将日期转换为您的格式。
var d = new Date(); // It's for presentation. You already have it from your input.
d.setFullYear(d.getFullYear()+1);
var str = [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/');
字符串输入
这是上面稍微修改的例子。您必须先解析字符串,以及如何解析,取决于您的日期格式。我将在这里假设,这是dd/MM/yyyy
.
var s = '28/01/2016';
var chunks = s.split('/');
d = new Date(chunks[2], chunks[1]-1, chunks[0], 0, 0, 0, 0);
d.setFullYear(d.getFullYear()+1);
var str = [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/');
尝试使用 String.prototype.slice()
,在input type="date"
第一个input type="date"
元素.nextElementSibling
处设置disabled
属性
编辑, 更新
添加了new Date()
,.toJSON()
处理闰年,如@itachi
var input = document.querySelector("input");
input.onchange = function(e) {
var val = this.value;
// add `1` to first four characters of `this.value` : `yyyy`
this.nextElementSibling.value = new Date(1 + +val.slice(0, 4)
+ val.slice(4)).toJSON().slice(0, 10)
}
<input type="date" /><input type="date" disabled>
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- jQuery Datepicker从日期开始设置默认值
- 高图表日期时间从错误的日期开始
- Javascript - 从当前日期开始的上个月计算
- 正在加载动态日历以在一个月的正确日期开始
- 如何在Moment.js中从日期开始获取一个月中的星期
- javascript从给定日期开始按月递增日期
- 从单击日期开始将数据放入输入类型中
- 用于调查的 Javascript:从页面加载时从出生日期开始计算年龄 从预填充信息加载
- 日期选取器日期范围:最大日期的最小日期 = 开始日期 + 1 天
- 谷歌时间线图表从错误的日期开始
- jquery从格式01/02/2010的日期开始修剪前导零
- Javascript从日期开始获取星期几
- 如何使用Javascript AngularJS从日期选择器中的当前日期开始
- 如何将日期时间分配给具有间隔和日期开始的高图
- 使用flipclock.js从一个特定的日期开始倒数
- 在代码编写器中验证开始和结束日期.开始日期小于结束日期
- 在ng-repeat Angularjs中显示从日期开始的时间
- 从日期开始增加变量Javascript
- 如何选择从开始日期到结束日期(即不包括结束日期)开始的序列化数据