我真的很喜欢PHP函数strtotime(),但user manual没有给出支持日期格式的完整描述。它只给出了一些例子,如“2000年9月10日”,“+1周2天4小时2秒”和“下周四”。PHP函数strtotime()支持哪些日期格式?
我在哪里可以找到完整的描述?
我真的很喜欢PHP函数strtotime(),但user manual没有给出支持日期格式的完整描述。它只给出了一些例子,如“2000年9月10日”,“+1周2天4小时2秒”和“下周四”。PHP函数strtotime()支持哪些日期格式?
我在哪里可以找到完整的描述?
我找不到任何官方的,但我看到a tutorial,说strtotime() 使用GNU日期输入格式。这些详细描述在in the GNU manual。
我注意到的一个不一致是“next”与GNU手册中描述的 行为不符。使用strtotime(),除非今天是星期四,否则“下周四”会给你与“星期四”相同的结果。
如果今天是星期四,然后
如果今天不是周四,然后
我使用PHP 5.2.6。
更新:
我想,因为我张贴了这个,要不然我是盲人用户手册已经更新。它现在包含指向Date and Time Formats chapter的链接,其中包含relative formats部分。
根据我的经验,strtotime()可以接受任何即使远程看起来像日期的东西。找出其边界的最好方法是创建一个测试脚本并插入值并查看哪些内容不起作用。
$input = "Apr 10th";
print(date('Y-m-d', strtotime($input)));
只是不断改变$ input变量并观察结果。
你可以开始跟踪它在做什么通过查看下面的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
好运
基本上date可以创建strtotime的任何东西都会解析。有一个例外,它与非美国风格的格式有问题。因此请保留Month-Year-Year类型的格式。
我记得看到一些说同样的事情,所以我会给你一个+1,但这似乎有点像你只是想赚取代表... – rmeador 2009-04-17 22:17:08
我不得不为此寻找一点点,所以我发布了问题和答案,以防其他人在寻找同样的事情。我认为这是网站的预期用途。 – 2009-04-17 23:34:19