我有两个接受的文本框Start Date
and End Date
分别采用 YYYY/MM/DD 格式。
如果用户选择的结束日期超出开始日期 50 天,我需要提醒他。
这是我到目前为止所拥有的:
var startDate = new Date(document.getElementsByName('MYSTARTDATE').value);
var endDate = new Date(document.getElementsByName('MYENDDATE').value);
if ((endDate - startDate) > 50)
{
alert('End date exceeds specification');
return false;
}
举个例子,当我选择开始日期作为2012/01/22
和结束日期为2012/02/29
startDate = 'Sun Jan 22 00:00:00 UTC +0530 2012'
endDate = 'Wed Feb 29 00:00:00 UTC +0530 2012'
结果为endDate - startDate
is 3283200000
, 代替38
。我究竟做错了什么?
3283200000 是 38 天(以毫秒为单位)。
38天×24小时×60分钟×60秒×1000毫秒
此外,这两个日期之间有 38 天,而不是 39 天。
一个简单的解决方案是将变量(实际上是常数)定义为一天中的毫秒数:
var days = 24*60*60*1000;
并在比较中使用该变量作为“单位”:
if ((endDate - startDate) > 50*days) {
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)