【问题标题】:isSame() function in moment.js or Date Validationmoment.js 或日期验证中的 isSame() 函数
【发布时间】:2015-02-05 03:40:44
【问题描述】:

我需要验证用户的日期并检查它是否采用特定格式。如果是,那么它将被接受,否则它不会被接受。我正在寻找一种

value.match("regular expression") 

如果我必须从几种格式中进行选择,上述方法效果很好。所以,我遇到了这个moment.js,并有兴趣知道如何使用isSame()。我尝试实施它但没有成功。喜欢:

var x=moment("MM/DD/YYYY") ;
x.isSame("28-02-1999");  // am getting false which is right
var x=moment("28-02-1999","DD-MM-YYYY") ;
x.isSame("28-02-1999");  // am getting false which is wrong

所以,请帮忙。 谢谢

【问题讨论】:

标签: javascript validation date momentjs


【解决方案1】:

Docs - Is Same

检查一个时刻是否与另一个时刻相同。

moment('2010-10-20').isSame('2010-10-20'); // true

如果要将粒度限制为毫秒以外的单位, 将单位作为第二个参数传递。

moment('2010-10-20').isSame('2009-12-31', 'year'); // false
moment('2010-10-20').isSame('2010-01-01', 'year'); // true
moment('2010-10-20').isSame('2010-12-31', 'year'); // true
moment('2010-10-20').isSame('2011-01-01', 'year'); // false

你的代码

var x=moment("28-02-1999","DD-MM-YYYY"); // working
x.isSame("28-02-1999"); // comparing x to an unrecognizable string

如果您尝试moment("28-02-1999"),您会得到一个无效的日期。因此,将 x 与无效的日期字符串进行比较会返回 false。

要修复它,请使用default date format (ISO 8601):

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame("1999-02-28"); // YYYY-MM-DD

或者传递isSame一个时刻对象。

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame( moment("28-02-1999","DD-MM-YYYY") );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多