首页 > 解决方案 > 以特定模式验证包含 DateTime 的字符串

问题描述

我正在尝试对从 Nodejs 中的帖子接收的参数进行一些验证。身体是这样的:

{
    "startDateTime": "2019-10-01 00:00:01",
    "endDateTime": "2019-10-01 23:59:59",
    "interval": "00:00:01"
}

所以,我需要验证是否startDateTime并且endDateTime在模式"yyyy-MM-dd hh:mm:ss"中,并且interval"hh:mm:ss"

我尝试使用 moment 包,但没有用

const testDate = moment(startDateTime, "yyyy-MM-dd hh:mm:ss", true).isValid()

我正在通过StartDateTime = "2019-10-01 00:00:01"并被testDate分配为假。

任何人都可以帮忙吗?

标签: javascriptnode.jsdatemomentjs

解决方案


您使用了错误的格式。试试"YYYY-MM-DD HH:mm:ss"吧。

要了解有关 Moment.js 格式的更多信息,请查看其文档

let response = {
    "startDateTime": "2019-10-01 00:00:01",
    "endDateTime": "2019-10-01 23:59:59",
    "interval": "00:00:01"
};

const testDate = moment(response.startDateTime, "YYYY-MM-DD HH:mm:ss", true).isValid();

console.log(testDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>


推荐阅读