parsing - MomentJS - 用于输入验证?

标签 parsing date momentjs

MomentJS 是用于用户输入解析吗?

我已经比较接近简单的情况了,让它接受 DDMMYYYY 顺序的日期,并且它可以处理一些变化。

在指定格式时,它不能很好地处理无效日期 - 包括日期值过高,或在 2 到 4 位数字之间切换年份值。

年份解释示例:

var date1 = moment('30082012', 'DDMMYYYY');
var date2 = moment('30082012', 'DDMMYY'); // Gives wrong year - 2020
var date3 = moment('300812', 'DDMMYYYY'); // Gives wrong year - 1900
var date4 = moment('300812', 'DDMMYY');

无效日期的示例:

var date5 = moment('08302012', 'DDMMYYYY'); // Gives Jun 08 2014
var date6 = moment('08302012', 'DDMMYY'); // Gives Jun 08 2022
var date7 = moment('083012', 'DDMMYYYY'); // Gives Jun 08 1902
var date8 = moment('083012', 'DDMMYY'); // Jun 08 2014

我用这些例子创建了一个 JS Fiddle: http://jsfiddle.net/cHRfg/2/

有没有办法让 moment 接受更广泛的用户输入,并拒绝无效日期?或者这个库不是为此目的?

最佳答案

var parsed = moment(myStringDate, 'DD.MM.YYYY');

对于版本 >= 1.7.0 使用:

parsed.isValid()

对于版本 <1.7.0 创建您自己的 isValid() 函数:

function isValid(parsed) { 
    return (parsed.format() != 'Invalid date');
}    

查看文档: http://momentjs.com/docs/#/parsing/is-valid/

关于parsing - MomentJS - 用于输入验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711787/

相关文章:

javascript - 从本地时区转换日期?

javascript - 为什么这个javascript不解析?

bash - 我可以编写一个程序以使用文本文件中的参数重复运行吗?

xml - 如何在android中保存数据结构?

html - 在Xcode中解析XML文件时删除HTML标记

mysql - 更新大量数据、日期(+1 小时)、唯一约束

python - Pandas:转换一系列时间戳,仅保留 YYYY-MM-DD 格式

javascript - Moment() 与预定义的 Moment().endof 日期

javascript - moment.js 并在日历 View 中获取尾随日期

php - 转换日期 PHP