首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >moment.js或日期验证中的isSame()函数

moment.js或日期验证中的isSame()函数
EN

Stack Overflow用户
提问于 2015-02-05 11:40:44
回答 1查看 97.1K关注 0票数 56

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

代码语言:javascript
复制
value.match("regular expression") 

如果我必须从几种格式中进行选择,则上述方法可以很好地工作。因此,我偶然发现了这个moment.js,并且对如何使用isSame()很感兴趣。我试着实现它,但没有成功。像这样:

代码语言:javascript
复制
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

所以,请在这方面提供帮助。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 22:39:19

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

你的代码

代码语言:javascript
复制
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 (ISO8601):

代码语言:javascript
复制
var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame("1999-02-28"); // YYYY-MM-DD

或者传递给isSame一个moment对象。

代码语言:javascript
复制
var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame( moment("28-02-1999","DD-MM-YYYY") );
票数 127
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28335803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档