日期的jQuery val导致某些日期的空字符串

时间:2014-07-30 08:42:51

标签: javascript jquery date

我有一个特别的问题。不确定我是偶然发现了一个错误还是文化问题。

我要做的是计算两个日期之间的经过天数。这项工作在很大程度上相当不错。但是对于某些日期$(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:

http://jsfiddle.net/52CPp/

首先尝试输入您想要的任何内容,然后尝试使用2014-02-30作为第一个日期并停止工作。

我在瑞典使用Chrome版本36.0.1985.125 m

还有其他人有同样的问题吗?这是文化问题吗?一个错误?

在IE10中尝试过,问题无法在那里重现。

亲切的问候,
罗宾

1 个答案:

答案 0 :(得分:1)

这样的事情:

var secondToLastRowDate = new Date(Date.parse(secondToLastRowDateString));
    if (isNaN(secondToLastRowDate)==true)
    {
        alert("First date is not valid!");
        return;
    }

Here's my working fiddle

相关问题