繁体   English   中英

使用 moment.js 检查日期格式

[英]check format of date with moment.js

我正在从我的屏幕中的日历中获取这种类型的输入

DD-MMM-YYYY HH:mm a

但用户可以从键盘提供日期。 现在我必须检查用户是否以正确的格式提供了日期。 我在我的应用程序中大量使用 moment.js 并像这样验证它

 if(angular.equals(moment(scope.modelValue).format('DD-MMM-YYYY HH:mm a'), 'Invalid date'))
{
       alert('date is not correct');

}
else
{
alert('date is correct');
}

它工作正常,但问题是如果我提供像“18-Feb-2015 2”这样的输入,那么它会被转换为“18-Feb-2015 00:00 am”。 那么现在如何检查该格式正是我想要的? 请帮忙 ..

如果只是为了检查下面是更好的选择

moment(scope.modelValue, 'DD-MMM-YYYY HH:mm a', true).isValid()

要检查日期格式,您可以使用:

moment(checked_date, DATE_FORMAT).format(DATE_FORMAT) === checked_date

如果您没有特定的日期格式,那么您也可以使用格式数组,

moment(checked_date, [DATE_FORMAT1, DATE_FORMAT2]).format(DATE_FORMAT)
 === checked_date

在打字稿中:

当前使用的import语句(import *作为“ moment”起的时刻)是模块的导入,并且不允许调用模块(即,禁止moment())。 可以通过importet对象访问所有已命名的矩出口。 可以通过moment.default()调用默认导出。我认为正确的解决方案是更改。

import * as moment from "moment" import moment from "moment"

因此,我们只导入默认导出并命名它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM