【问题标题】:What date formats does the PHP function strtotime() support?PHP 函数 strtotime() 支持哪些日期格式?
【发布时间】:2009-04-17 22:04:49
【问题描述】:

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

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

【问题讨论】:

    标签: php datetime


    【解决方案1】:

    我找不到任何官方信息,但我看到 a tutorial 上面写着 strtotime() 使用 GNU 日期输入格式。这些都在详细描述in the GNU manual

    我注意到的一个差异是“下一个”与 GNU 手册中描述的行为。使用 strtotime(),"next Thursday" 将得到与 "Thursday" 相同的结果,除非今天是星期四。

    如果今天是星期四,那么

    • strtotime("Thursday") == strtotime("today")
    • strtotime("下周四") == strtotime("今天 + 7 天")

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

    • strtotime("星期四") == strtotime("下星期四")

    我使用的是 PHP 5.2.6。

    更新:

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

    【讨论】:

    • 我记得看到过同样的事情,所以我会给你一个 +1,但这看起来有点像你只是想赚取声望......
    • 我不得不为此寻找一些东西,所以我发布了问题和答案,以防其他人也在寻找同样的东西。我认为这是该网站的预期用途。
    • 是的,FAQ 明确指出回答您自己的问题是可以的,只要其格式为 QuestionAnswer。如果这个问题很愚蠢,它将被否决。否则,这将有助于其他人在未来搜索此信息。
    • 您应该能够发布问题和答案而不会投票。在选择正确答案之前稍等片刻,有人可能会比你做得更好。 :)
    【解决方案2】:

    您可以通过查看以下 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

    祝你好运

    【解决方案3】:

    根据我的经验,strtotime() 可以接受任何看起来像约会的东西。找出它的界限的最好方法是创建一个测试脚本并插入值,然后看看什么有效,什么无效。

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2018-11-20
        • 1970-01-01
        • 1970-01-01
        • 2012-11-10
        • 2012-12-14
        • 2015-08-05
        • 2014-08-04
        • 2011-09-10
        • 2021-01-09
        相关资源
        最近更新 更多