JS如何校验日期是否合法?分享1段优质JS代码片段!

Hi,这里是前端后花园,每天学习一个 JS 片段,涨涨知识🧀!今天带来的是如何校验日期是否合法。

https://images.unsplash.com/photo-1720527075696-346b50b6c360?q=80&w=2938&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D

代码

const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());

isDateValid('December 17, 1995 03:24:00'); // true
isDateValid('1995-12-17T03:24:00'); // true
isDateValid('1995-12-17 T03:24:00'); // false
isDateValid('Duck'); // false
isDateValid(1995, 11, 17); // true
isDateValid(1995, 11, 17, 'Duck'); // false
isDateValid({}); // false

分享原因

  1. isDateValid 函数能灵活的日期验证工具,支持处理多种格式的日期和时间输入,判断它们是否表示有效的日期;

  2. 接受多种格式的日期和时间字符串:如果传入的参数可以被 Date 构造函数解析为一个有效的日期,函数返回 true。这包括常见的日期时间字符串格式,如 'December 17, 1995 03:24:00''1995-12-17T03:24:00'

  3. 接受多种格式的日期和时间字符串:如果传入的参数可以被 Date 构造函数解析为一个有效的日期,函数返回 true。这包括常见的日期时间字符串格式,如 'December 17, 1995 03:24:00''1995-12-17T03:24:00'

代码解析

  1. 使用扩展运算符(…)将参数数组传递给 Date 构造函数,如果不能被解析为有效日期,会被设置为一个表示“Invalid Date”的特殊值;;

  2. 使用 Date.Prototype.valueOf()返回日期的时间值,非法日期Date对象会返回NaN

  3. Number.isNaN()检查返回值是否为Number类型,判断是否创建了有效的 Date 对象。


这里是JS代码片段系列,记录开发过程常见代码片段,往期精选JS代码片段:

四个初始化 JavaScript Array数组方法及性能对比

JS片段:如何将文本复制到剪贴板

JS片段:如何计算 SHA-256 hash值

如何获取字符串的字节长度?分享1段优质JS代码片段!

如何用JS实现sleep函数?分享1段优质JS代码片段!

JS执行长任务时如何让出控制权?分享1段优质JS代码片段!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端后花园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值