【问题标题】:Validate date with Moment.js according to culture format根据文化格式使用 Moment.js 验证日期
【发布时间】:2015-07-19 06:22:24
【问题描述】:

我必须根据文化的日期格式验证日期。例如,我可能需要验证英语文化(“MM/DD/YYYY”)或意大利文化(“DD/MM”的日期/YYYY")。

由于某种原因,日期始终以英语文化为准。 所以例如我想验证一个英文格式的日期:

moment.locale('en'); // <-- I set the culture

moment('12/13/2015').isValid(); // <-- Return true, ok
moment('13/12/2015').isValid(); // <-- Return false, ok

现在我想验证同一个日期,只是改变文化:

moment.locale('it'); // <-- I set the culture

moment('12/13/2015').isValid(); // <-- Return true, but it should be false
moment('13/12/2015').isValid(); // <-- Return false, but it should be true

如何使用 moment.js 来验证日期? 谢谢。

【问题讨论】:

    标签: javascript validation date momentjs


    【解决方案1】:

    对于已知格式的验证,您可以使用:

    moment('13/12/2015',['DD/MM/YYYY']).isValid();
    

    试试这个方法:

    > moment.locale('it')
    'it'
    > var m = moment('13/12/2015', 'L');
    undefined
    > m.isValid()
    true
    > m.format()
    '2015-12-13T00:00:00-05:00'
    

    【讨论】:

    • 我没有已知的格式...这取决于我在应用程序开始时选择的文化...
    • Simone:您的“已知格式”很可能是 'l'、'll'、'llll' 或 'llll' 或大写变体,在这里。 (选一个)
    • 只有一点:.isValid() 不会阻止逐月更改,反之亦然
    猜你喜欢
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多