angular - momentjs:检查字符串是否是特定格式的日期
问题描述
我收到了一些字符串,如果它们是日期,我想格式化它们。
我正在使用 moment.js 来检查字符串是否为日期:
只有这种格式的字符串应该返回 true:2011-03-02T11:02:00+03:00
但是,目前,这也被视为有效日期:034932
或此:279565
。
我的代码:
const date = new Date(dateString);
return moment(date, moment.ISO_8601, true).isValid();
我如何用momentjs检查这个?
我查看了文档,但没有找到任何明确包含时区偏移的格式定义。
解决方案
new Date(dateString)
如果要使用 momentjs 检查字符串格式,则不必使用。您的代码会产生误导性结果,因为您正在使用本机 JavaScrpt Date 解析输入。您必须使用(所以第一个参数应该是字符串,而不是 Javacript 日期)。moment(
String
, String, Boolean)
工作示例:
const isStringValidDate = (dateString) => moment(dateString, moment.ISO_8601, true).isValid();
["034932", "279565", "2011-03-02T11:02:00+03:00"].forEach((val) => console.log(val, isStringValidDate(val)))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
推荐阅读
- linker - LLVM 链接:命令行错误:选项“帮助列表”注册了多次!LLVM 错误:注册的命令行选项不一致
- php - PHP在字符串中显示浮点数
- c++ - 在 QT 中包含 QtSql 库时出现“运算符不匹配”
- ssl - Running Go server behind Nginx Reverse Proxy with SSL
- python - 有什么方法可以使用 python regex 在目录和子目录的所有文件中搜索?
- python - AppEngine - IOError:[Errno 2] 没有这样的文件或目录:
- android - 在我的 Android 应用程序中出现“错误:找不到符号方法 openFileOutput(String,int)”
- py2neo - 如何在py2neo中检索节点的属性值
- java - 如何使用 Liquibase changelog.yaml 文件和 Spring Boot 为 MySQL 表中的列设置默认值
- php - htaccess 两个文件夹重写规则