如何验证其中包含时区的日期字符串的格式?
How can I validate the formate of a date string that has timezone in it?
如果我有这个日期:April 14, 2022 14:00 UTC
,我如何验证它在 MMMM DD, YYYY HH:mm <timezone>
?
我用 moment
试过了,但它没有时区格式。
moment(date, 'MMMM DD, YYYY HH:mm',true).isValid()
如何验证字符串是否为 MMMM DD, YYYY HH:mm <timezone>
格式?
您可以在解析格式中包含“UTC”作为文字文本,例如
let date = 'April 14, 2022 14:00 UTC';
console.log(
moment(date, 'MMMM DD, YYYY HH:mm[ UTC]',true).isValid()
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.2/moment.min.js"></script>
根据 moment.js documentation,支持各种偏移格式,因此如果有其他偏移表示,您可以使用多个测试来支持说“UTC”和“+00:00”(或±HH:mm一般来说),例如
['April 14, 2022 14:00 UTC',
'April 14, 2022 14:00 +00:00',
'April 14, 2022 14:00 +05:30'
].forEach(date =>
console.log(`${date} is valid? ` +
`${moment(date, 'MMMM DD, YYYY HH:mm[ UTC]', true).isValid() ||
moment(date, 'MMMM DD, YYYY HH:mm Z', true).isValid()}`
)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.2/moment.min.js"></script>
不幸的是 isValid 不支持一次调用多种格式,所以你不能这样做:
moment(date, 'MMMM DD, YYYY HH:mm[ UTC]', 'MMMM DD, YYYY HH:mm Z', true).isValid()
因为只识别第一种格式。
如果我有这个日期:April 14, 2022 14:00 UTC
,我如何验证它在 MMMM DD, YYYY HH:mm <timezone>
?
我用 moment
试过了,但它没有时区格式。
moment(date, 'MMMM DD, YYYY HH:mm',true).isValid()
如何验证字符串是否为 MMMM DD, YYYY HH:mm <timezone>
格式?
您可以在解析格式中包含“UTC”作为文字文本,例如
let date = 'April 14, 2022 14:00 UTC';
console.log(
moment(date, 'MMMM DD, YYYY HH:mm[ UTC]',true).isValid()
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.2/moment.min.js"></script>
根据 moment.js documentation,支持各种偏移格式,因此如果有其他偏移表示,您可以使用多个测试来支持说“UTC”和“+00:00”(或±HH:mm一般来说),例如
['April 14, 2022 14:00 UTC',
'April 14, 2022 14:00 +00:00',
'April 14, 2022 14:00 +05:30'
].forEach(date =>
console.log(`${date} is valid? ` +
`${moment(date, 'MMMM DD, YYYY HH:mm[ UTC]', true).isValid() ||
moment(date, 'MMMM DD, YYYY HH:mm Z', true).isValid()}`
)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.2/moment.min.js"></script>
不幸的是 isValid 不支持一次调用多种格式,所以你不能这样做:
moment(date, 'MMMM DD, YYYY HH:mm[ UTC]', 'MMMM DD, YYYY HH:mm Z', true).isValid()
因为只识别第一种格式。