【发布时间】:2018-11-16 15:34:05
【问题描述】:
让错误日期58/57/5654(或58.57.5654)用一组语言中的一种语言写成,其中日期的书写方式不同(例如:法语日期、英语日期和德国日期)。我想通过传递语言的日期格式和这个错误的日期来调用DateTime::createFromFormat(),目的是根据语言检索错误(或正确)的日期、月份和年份。
示例。
法国用户写了
58/57/5654(或58.57.5654)。所以我想得到:(day, month, year) = (58, 57, 5654)英文用户写了同样的日期。我会得到:
(day, month, year) = (57, 58, 5654)。对于德国人来说,它与法语相同。
问题
使用DateTime::createFromFormat($the_format, $the_date); 将在给定的日期的日、月和年值上执行滚动,如果给定的值是错误的。例如:string(10) "58/57/5654" 变为正确的,但不需要,日期 string(10) "28/10/5658"。
我怎样才能避免这个滚动?
见:https://secure.php.net/manual/fr/datetime.createfromformat.php
【问题讨论】:
-
要么使用本地化的日期库,如 moment.js,要么强制用户使用特定格式。我的目标是在客户端解决这个问题。还应该在那里进行第一次验证以避免混淆(例如不正确的日期 58/57)。
-
这些无效日期背后有什么原因吗?我的意思是,如果你有自己的日期系统,无论出于何种原因,你都不能坚持标准课程,因为他们不知道你的奇怪系统。
标签: php datetime datetime-format