javascript - 如何确保结束日期总是比开始日期多 7 天?
问题描述
我有一个页面显示开始日期和结束日期,如下所示:
如您所见,默认情况下,结束日期总是比开始日期多 7 天。我可以更改开始日期,但我如何确保每次更改开始日期时,结束日期也会与相应的开始日期相加 7 天?
代码:
<%
String relPath = "../../../";
String currentDate = CoreUtil.parseDate(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//get current date
Calendar cal = Calendar.getInstance();
//Number of Days to add
cal.add(Calendar.DAY_OF_MONTH, 7);
String defaultDate = sdf.format(cal.getTime());
%>
Start Date: <input class="txtStartDate" style="font: 13px/1.231 Trebuchet MS;" type="text" id="txtStartDate" name="Start Date" value="<%=currentDate%>" readonly><br><br>
End Date:   <input class="txtEndDate" style="font: 13px/1.231 Trebuchet MS;" type="text" id="txtEndDate" name="txtEndDate" value="<%=defaultDate%>" readonly required/>
编辑:
这是我的 JavaScript 代码:
<Script>
$('#txtStartDate').datepicker();
$('#txtEndDate').datepicker();
$('#txtStartDate').change(function(){
var interval = 7;
function convertDateString(p) { return (p < 10) ? '0' + p : p; }
var startDate = new Date($(this).val());
startDate.setDate(startDate.getDate() + interval);
$('#txtEndDate').val( startDate.getFullYear() + '/' + convertDateString(startDate.getMonth() + 1) + '/' + convertDateString(startDate.getDate()));
});
</script>
基本上每当我更改开始日期时,结束日期也应该自动更改为(开始日期+7 天),这就是我想要做的。上面的代码应该可以工作,但是当我更改开始日期时它并没有改变我的结束日期。
解决方案
这可能会有所帮助。
Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
$('#txtStartDate').datepicker();
$('#txtEndDate').datepicker();
$('#txtStartDate').change(function(){
var interval = 7;
var startDate = new Date($(this).val());
$('#txtEndDate').val(startDate.addDays(interval));
});
推荐阅读
- javascript - 如何获得异步,等待函数同步结果
- apache-kafka - Kafka:消费者 api:无法使用 kafka-consumer-api 从偏移量手动读取和确认
- mysql - 将数据加载到 mysql、--secure-file-priv 和本地
- azure-ad-b2c - 在超过重定向到错误页面的自断言步骤策略的重试限制后。如何停止此重定向并显示自定义按摩
- html - 如何在离子卡中设置内边距?离子 4
- mapbox - Mapbox API 沿路径返回高程数据
- c - 如何使用 fscanf() 逐行读取 C 中的某些文件而不获取幻线?
- python - Plotly express 与 Altair/Vega-Lite 的交互式绘图
- excel - 无法将 Excel 中的 vba 宏与 KEPServer 连接。DDERequest 错误 2023
- java - 无法将项目上传到 AWS Lambda