javascript - DayJS isValid 的行为与 Moment 不同

标签 javascript

我尝试使用 dayjs 验证生日,但其 isValid 对于不存在的日期返回 true。有趣的是,momentisValid 工作得很好。

dayjs('2019/02/31', 'YYYY/MM/DD').isValid() // true
moment('2019/02/31', 'YYYY/MM/DD').isValid() // false

由于 dayjs 的轻量级,我无法切换到 moment

知道如何解决这个问题吗?

最佳答案

2021 年 8 月:现在可以使用 .isValid() 方法检测这些无效日期,并将第三个参数作为 true 传递给 dayjs 构造函数:

dayjs('2019/02/31', 'YYYY/MM/DD').isValid() // true
dayjs('2019/02/31', 'YYYY/MM/DD',true).isValid() // false

关于这个严格解析参数的更多信息现在可以在 official doc 找到。 .

注意:在 Node.js 中,我必须在调用 isValid() 之前加载第一个 customParseFormat 插件才能接收预期的有效性结果:

const dayjs = require("dayjs");
var customParseFormat = require("dayjs/plugin/customParseFormat");
dayjs.extend(customParseFormat);

关于javascript - DayJS isValid 的行为与 Moment 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58216504/

相关文章:

javascript - 将我的 Angular 自定义指令编译到单个 .js 文件中

javascript - 如何排列 jQuery 延迟对象?

用于插入新 pre 标记的 JavaScript 事件处理程序

javascript - AngularJS - 递归指令不起作用(无限循环)

javascript - Navbar bootstrap 3 无法在移动设备上运行

javascript - 如何从 json 对象中删除 $promise 和 $resolved

javascript - 如何使 <tr> 充当固定的顶部栏?

javascript - 如何制作可以悬停的画廊或视频或图像缩略图并显示更大的图像?

javascript - 加载 html 或 JavaScript 文件作为 iframe 源

Javascript - innerHTML 不适用于 HTML 选择菜单