我正在尝试对日期列表进行排序,但我正在努力处理无法一致处理的空日期。
所以我需要这样的东西:
var date = Date.parse(dateString);
if (!date) {
date = Date.MinValue;
}
但我很难找到正确的语法。感谢
更新:该错误原来是一个不同的问题。我导入 Datejs 以在项目的另一部分中使用,所以我没有意识到Datejs定义了一个覆盖标准JavaScript方法的Date.parse()
方法。
无论如何,事实证明Datejs有一个奇怪的错误,这意味着它不能正确处理以“A”开头的日期。所以实际上我的零日期正确订购,只是四月和八月的日期随后与他们混在一起。
修复方法是使用Datejs Date.parseExact
方法,该方法允许您提供特定的格式字符串,请参阅here。
答案 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对象等效。