验证特定模式中包含DateTime的字符串



我正在尝试对从Nodejs中的post中接收到的params进行一些验证。身体有点像:

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

因此,我需要验证startDateTimeendDateTime是否在模式"yyyy-MM-dd hh:mm:ss"中,以及interval是否在"hh:mm:ss"

我试着使用即时包,但不起作用

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

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

有人能帮忙吗?

您使用了错误的格式。请改用"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>

最新更新