我有一个特别的问题。不确定我是偶然发现了一个错误还是文化问题。
我要做的是计算两个日期之间的经过天数。这项工作在很大程度上相当不错。但是对于某些日期$(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中尝试过,问题无法在那里重现。
亲切的问候,
罗宾
答案 0 :(得分:1)
这样的事情:
var secondToLastRowDate = new Date(Date.parse(secondToLastRowDateString));
if (isNaN(secondToLastRowDate)==true)
{
alert("First date is not valid!");
return;
}