PHP函数strtotime()支持哪些日期格式?

时间:2009-04-17 22:04:49

标签: php datetime

我非常喜欢PHP函数strtotime(),但user manual没有给出支持的日期格式的完整描述。它只给出了一些例子,如“2000年9月10日”,“+1周2天4小时2秒”和“下周四”。

我在哪里可以找到完整的说明?

4 个答案:

答案 0 :(得分:7)

我找不到任何正式的,但我看到a tutorial说strtotime() 使用GNU日期输入格式。详细描述了in the GNU manual

我注意到的一个差异是“下一个”不符合 GNU手册中描述的行为。使用strtotime(),“下周四”会给你与“星期四”相同的结果,除非今天是星期四。

如果今天是星期四,那么

  • strtotime(“星期四”)== strtotime(“今天”)
  • strtotime(“下周四”)== strtotime(“今天+ 7天”)

如果今天不是星期四,那么

  • strtotime(“星期四”)== strtotime(“下周四”)

我正在使用PHP 5.2.6。

<强>更新

我想用户手册自我发布以来已经更新,否则我是盲人。它现在包含指向Date and Time Formats chapter的链接,其中包含relative formats的部分。

答案 1 :(得分:1)

您可以通过查看以下C代码来开始跟踪它的作用:

http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c

搜索PHP_FUNCTION(strtotime)

这也是主要的正则表达式解析:

http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/parse_date.re

祝你好运

答案 2 :(得分:0)

根据我的经验,strtotime()可以接受任何甚至远程看起来像日期的东西。找出其边界的最佳方法是创建一个测试脚本并插入值,看看哪些有效,哪些无效。

$input = "Apr 10th";
print(date('Y-m-d', strtotime($input)));

只需不断更改$ input变量并观察结果。

答案 3 :(得分:0)

基本上date可以创建strtotime的任何东西都会解析。除了一个例外,它确实存在非美国式格式的问题。因此,请保留月 - 日 - 年类型格式。