gpt4 book ai didi

javascript - 使用表单中的脚本比较日期

转载 作者:行者123 更新时间:2023-11-28 09:01:52 25 4
gpt4 key购买 nike

我正在尝试根据第一个文本框中输入的日期来验证日期。如果第二个文本框距离第一个文本框中输入的日期超过一年,则它应该显示警报并将第二个日期字段文本框留空。两个文本框都是只读的,并从日历获取值。我尝试了下面的代码,但即使年份不超过一年,也会弹出警报。另外,是否可以将“name3”和“name4”ID 作为参数传递。我需要将此代码应用于 10 行。

<script>
function fixup()
{
var parts = document.getElementById('name3').value.split("-");
parts[2] = Number(parts[2]) + 1;
var pj = parts.join("-");

var x=document.getElementById('name4').value;
if(x>pj)
{
alert("Expiration date should not be greater than one year from start date");
document.getElementById('name4').value = "";
return false;
}
return true;
}



</script>
</head>
<body>
<form onsubmit="return fixup()">
<table>
<tr>
<td><input type="text" name="soname3" id="name3" size="15" readonly="readonly">
<img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
<td><input type="text" name="soname4" id="name4" size="15" readonly="readonly">
<img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12'); " /> </td>
</tr>
</table>
<input type="submit" value="Submit">
</form>

根据 dm03514 的建议,我做了下面的代码。但验证不起作用..

  function test()
{
start = document.getElementById('name3').value;
end = document.getElementById('name4').value;
compare(start, end);

}

function compare(sDate, eDate)
{
function parseDate(input) {
var parts = input.match(/(\d+)/g);
return new Date(parts[2], parts[0]-1, parts[1]); //parts[2] is year, parts[0] is month and parts[1] is date.
}
var parse_sDate = parseDate(sDate);
var parse_eDate = parseDate(eDate);
parse_sDate.setDate(parse_sDate.setFullYear(parse_sDate.getMonth() + 12));
if(parse_sDate>parse_eDate)
{
alert("End date should not be greater than one year from start date");
}


}

最佳答案

我强烈建议使用像 moment.js 这样的库用于处理日期。它具有广泛的日期格式化和解析功能以及比较助手:

var d1 = moment(document.getElementById('name3').value, 'YYYY-MM-DD');
var d2 = moment(document.getElementById('name4').value, 'YYYY-MM-DD');

var diff = d2.diff(d1, 'years');

if (diff > 0) {
alert("Expiration date should not be greater than one year from start date");
}

另请参阅:Compare two dates in JS

关于javascript - 使用表单中的脚本比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com