【发布时间】:2020-09-15 22:39:22
【问题描述】:
我看过很多关于这个的文章,但还没有找到我想要的。
我试图简单地检查一个字符串是否是一个日期。该字符串可能包含诸如 2012 之类的数字。
var timestamp = Date.parse('foo 2012');
if (isNaN(timestamp) == false) {
var d = new Date(timestamp);
console.log('DATE', d)
}else{
console.log('TEXT');
}
//输出:DATE Sun Jan 01 2012 00:00:00 GMT+1100(澳大利亚东部夏令时间)
- 为什么 javascript 将 foo 2012 转换为显然不是日期的日期?
- 如何验证我的字符串是实际日期?
【问题讨论】:
-
定义“是一个日期”
-
每个 JavaScript 环境都有自己的规则来解析非 ISO 标准格式的日期字符串。你不能指望它是一致的。这就是 Moment 这样的库存在的原因:您决定您认为日期字符串是什么(或可能性列表),然后明确告诉它要解析什么。
-
每个帖子只问一个问题。对于第一个问题,解析是否不受支持的格式取决于实现。
Date.parse('foo 2012')在不同的实现中产生不同的结果。对于第二个问题,请参阅第二个副本。
标签: javascript date date-conversion date-parsing