javascript - 针对 javascript 中的多种格式验证日期
问题描述
我有几种我们接受的日期格式。
const dateFormats =['yyyy-MM-ddTHH:mm:ss.SSSZ','yyyy.MM.DD','MM.DD.yyyy','MM-DD-yyyy','yyyy/MM/DD','MM/DD/yyyy']
我想用这些格式验证传入日期?我如何在javascript中做到这一点?这是我正在尝试的:-
let isValid = dateFormats.some(dateFormat => {
if(typeof val === 'string' && val.indexOf(' ') < 0)
return moment(val, dateFormat, true).isValid()
else return false
})
但它不工作
解决方案
您可以将多种日期格式传递给moment
const val = new Date()
const dateFormats = ['yyyy-MM-ddTHH:mm:ss.SSSZ', 'yyyy.MM.DD', 'MM.DD.yyyy', 'MM-DD-yyyy', 'yyyy/MM/DD', 'MM/DD/yyyy']
const valid = moment(val, dateFormats, true).isValid()
console.log({ valid })
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
推荐阅读
- reactjs - 使用 Firebase (FCM) 的 PWA ReactJS 推送通知
- java - Android 上的模拟 API 响应
- vue.js -
not 没有像锚标签那样提供内部链接 - python - Python PyGame 同时按下两个按钮
- python-3.x - 不确定如何解决此覆盖错误
- python - 根据多个 QComboBox 的文本启用或禁用 QDialogButtonBox
- corda - 如果没有交易对手,在 FinalityFlow 中应该使用哪个构造函数?
- javascript - 状态更改后功能组件未重新渲染
- sql - SQL将值从触发器插入视图
- mongodb - 使用 DataImportHandler 连接 MongoDB 和 Solr 8.2