我有一个最奇怪的问题。不确定我是偶然发现了一个错误还是文化问题。
我想做的是计算两个日期之间经过的天数。这在大多数情况下工作得很好。但对于某些日期 $(date).val()
返回空字符串。不知道为什么。
这是我的代码:
HTML:
<ul id="dates">
<li>
<input type="date" class="date" max="2014-07-30" />
</li>
<li>
<input type="date" class="date" max="2014-07-30" />
</li>
</ul>
max 属性始终是今天的日期。我只是没有添加它的计算。
jQuery/Javascript:
var secondToLastRow = list.find('li:nth-last-child(2)');
var lastRow = list.find('li:nth-last-child(1)');
var secondToLastRowDateString = secondToLastRow.find('.date').val();
var secondToLastRowDate = new Date(Date.parse(secondToLastRowDateString));
var lastRowDateString = lastRow.find('.date').val();
var lastRowDate = new Date(Date.parse(lastRowDateString));
var days = (secondToLastRowDate - lastRowDate) / (1000 * 60 * 60 * 24);
如前所述,这有效,但是,对于某些日期,它返回空字符串,因此计算得到 NaN 结果。
我为此准备了一个jsfiddle:
首先尝试输入您想要的任何内容,然后尝试使用 2014-02-30 作为第一个日期,它会停止工作。
我在瑞典,使用的是 Chrome 版本 36.0.1985.125 m
还有人有同样的问题吗?是文化问题吗?一个错误?
在IE10中尝试过,无法重现问题。
亲切的问候,
罗宾
最佳答案
像这样的想法:
var secondToLastRowDate = new Date(Date.parse(secondToLastRowDateString));
if (isNaN(secondToLastRowDate)==true)
{
alert("First date is not valid!");
return;
}
关于javascript - 日期的 jQuery val 会导致某些日期为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032333/