使用 date-fns 进行德语日期验证
Posted
技术标签:
【中文标题】使用 date-fns 进行德语日期验证【英文标题】:German date validation with date-fns 【发布时间】:2019-06-27 01:37:40 【问题描述】:我有一个带有德国日期的字符串(31.01.2019,DD.MM.YYYY)。 现在我需要使用 date-fns 检查日期是否有效。
dateFns.isValid(new Date('19.11.2019'), 'DD.MM.YYYY');
这不起作用。我总是从 date-fns 得到错误的反馈。 我认为 date-fns 期待另一种日期格式。
如何验证德国日期格式的字符串?
【问题讨论】:
如果您将字符串传递给new Date
,那么它必须采用 ISO 格式,任何其他格式都会导致无效日期或不可预知的结果。而19.11.2019
不是创建日期的有效字符串。
您可以在每个点 .
处拆分它,然后像这样使用 Date
构造函数:***.com/a/33299764
【参考方案1】:
你可以使用date-fns库的isValid
和parse
函数:
import isValid, parse from 'date-fns';
// parse the string to a Date
const date = parse('31.08.2012', 'dd.MM.yyyy', new Date());
// then check the validity of that date
isValid(date)
查看文档以获取有关这些功能的更多详细信息:https://date-fns.org/docs/Getting-Started
【讨论】:
你能帮忙***.com/questions/67760399/…【参考方案2】:从日期-fns documentation :
如果参数是无效日期,则返回 false,否则返回 true。无效的 Date是一个Date,时间值为NaN。
因为new Date('19.11.2019')
已经给出了Invalid Date
(因为它不是ISO 格式),所以你得到false
。
如果你想使用德语格式,你应该convert你的日期格式为 ISO 格式。
【讨论】:
谢谢。 date-fns 仅支持格式 yyyy-mm-dd 进行验证?这是正确的吗? @HansPeter 在 2.x 版之前(仍然是 alpha),isValid
函数只接受 Date
对象作为输入,并检查 Date
对象是否包含有效的日期信息.它不会对格式进行任何验证,只有当它拥有一个有效的日期时。并且 javascript Date
对象不包含任何格式,它仅包含日期的表示。而new Date
只接受 ISO 格式的日期。以上是关于使用 date-fns 进行德语日期验证的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 AS3 RegExp:验证出生日期(荷兰/德语表示法)
使用 Date-FNS - NaN 错误以分钟为单位获取日期之间的差异