编程语言
首页 > 编程语言> > 一个值得尊敬的PHP Datetime解析器

一个值得尊敬的PHP Datetime解析器

作者:互联网

echo date('r',strtotime("16 Dec, 2010")); //Tue, 16 Dec 2008 20:10:00 +0530
echo date('r',strtotime("16 Dec  2010")); //Sat, 16 Jan 2010 00:00:00 +0530

那是错误的……要么应该失败,要么应该正确解析.您知道PHP中有任何健壮的自然语言日期/时间解析器吗?您如何解析PHP中的自然语言日期时间?

编辑:

var_dump(strtotime("16 Dec, abcd")); //bool(false)

“ 2010年12月16日”是有效的GNU日期输入格式,或者不是.在第一种情况下,它应返回正确的答案,在第二种情况下,应返回false.这就是我所说的“错误”.

编辑:

正如猜测的那样,目的是接受大量的用户输入.

解决方法:

如果您知道时间在字符串中以什么格式表示,则可以将strptime()与适当的格式字符串一起使用以对其进行解析.无法按照格式解释字符串时,它将至少报告一个错误.

此功能存在于PHP 5.1.0及更高版本中.

如果您想接受用户的任意输入,则应该向用户提供清晰明显的反馈,以便用户可以对错误解释的日期进行处理.在大多数情况下,无论如何都不会有问题,而且您永远也找不到所有有问题的案例(想想美国与欧洲格式).

标签:datetime-parsing,datetime,php
来源: https://codeday.me/bug/20191108/2004644.html