JavaScript Date.parse()和null日期

时间:2010-07-16 10:40:41

标签: javascript datetime comparison null

我正在尝试对日期列表进行排序,但我正在努力处理无法一致处理的空日期。

所以我需要这样的东西:

var date = Date.parse(dateString);
if (!date) {
    date = Date.MinValue;
}

但我很难找到正确的语法。感谢


更新:该错误原来是一个不同的问题。我导入 Datejs 以在项目的另一部分中使用,所以我没有意识到Datejs定义了一个覆盖标准JavaScript方法的Date.parse()方法。

无论如何,事实证明Datejs有一个奇怪的错误,这意味着它不能正确处理以“A”开头的日期。所以实际上我的零日期正确订购,只是四月和八月的日期随后与他们混在一起。

修复方法是使用Datejs Date.parseExact方法,该方法允许您提供特定的格式字符串,请参阅here

3 个答案:

答案 0 :(得分:12)

parse()在一个不可能的解析上返回NaN,那么如何;

 var date = Date.parse(dateString) || 0;

答案 1 :(得分:6)

您可以使用isNaN(日期)检查无效日期。你确定你想要使用“MinValue;来自Date吗?我在chrome上运行js并继续未定义。

答案 2 :(得分:4)

如果您真的想要比较有效的JS Date对象(“空”或未设置但因此默认为1970年1月1日)以测试它是否为假 - 您可以使用:

var null_date = new Date(0);

这将创建一个Date对象,该对象设置为Date()开始计数的最小(零)时间戳...这与从未设置的Date对象等效。