【发布时间】:2012-05-23 00:04:19
【问题描述】:
我在使用 Javascript 解析用户输入时遇到问题,我无法让解析器正确接受 ddMMyyyy 中的日期。当有分隔符时,它会正确解析。
下面的示例使用DateJS(新西兰本地化),并且我已初步尝试使用较新的MomentJs(事实证明这不是输入验证的理想选择)。我对其他框架持开放态度,如果它们能够充分处理输入案例。
我的测试用例:
// Parses correct value
var dateWithHyphens = Date.parse('01-06-2012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithoutHyphens = Date.parse('01062012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithFormat = Date.parse('01062012', { format: 'ddMMyyyy'});
我为此创建了一个 JSFiddle:http://jsfiddle.net/ajwxs/1
测试用例应该返回 6 月 1 日,但不正确的会返回 1 月 6 日。(这是输入解析 - 输出格式为时已晚)。
关于是否可以更好地促使 JSDate 使用正确的格式来解析这些日期的任何建议?
更新
在这个应用程序中,我正在验证一些可能的用户输入,包括:
01062012
01/06/2012
010612
这会使 parseExact 样式的实现有点冗长...
【问题讨论】:
标签: javascript parsing date