正在验证JavaScript datetimeZone格式



我可以使用moment库验证这个日期的格式:

2022-03-26T14:15:51 ("YYYY-MM-DDTHH:mm:ss")
2022-03-26 ("YYYY-MM-DD")

但有以下问题:

2022-03-26T14:15:51.667778+03:00  ("YYYY-MM-DDTHH:mm:ss.SSSZ") - this format not solving the problem.

有解决办法吗?也许使用正则表达式可以解决问题?

您可以尝试YYYY-MM-DDTHH:mm:ss.SSSSSSZ格式,我还建议在解析日期时使用严格模式。此格式将允许小数点后的可变位数,但将拒绝解析没有小数秒的日期:

function validateDate(input, format) {
const dt = moment(input, format, true);
return dt.isValid();
}
const testInputs = [
'2022-03-26T14:15:51.667778+03:00',
'2022-03-26T14:15:51.667+03:00',
'2022-03-26T14:15:51+03:00',
'2022-03-26T14:15:51',
'FOO'
]
const format = 'YYYY-MM-DDTHH:mm:ss.SSSSSSZ';
console.log('Input'.padEnd(36), 'Valid');
testInputs.forEach(input => console.log(input.padEnd(36), validateDate(input, format)))
.as-console-wrapper { max-height: 100% !important; }
<script src="https://momentjs.com/downloads/moment.js"></script>

最新更新