【问题标题】:PHP Relative Date IssuePHP 相对日期问题
【发布时间】:2017-03-29 16:43:52
【问题描述】:

我对 PHP 相对日期有疑问,我已经查看了相对日期与显式日期之间的关系。这似乎出现在当月的第一天(在本例中为星期一)是所需的相对日期时。例如2017 年 5 月和 2018 年 1 月

我希望以下内容为我提供 2017 年 5 月 1 日,但是,我得到了 2017 年 5 月 8 日。

$var = new DateTime();
var_dump($var->modify('First Monday May 2017'));

/** Output **/
object(DateTime)#1 (3) {
  ["date"]=>  string(26) "2017-05-08 00:00:00.000000"
  ["timezone_type"]=>  int(3)
  ["timezone"]=> string(3) "UTC"
}

感谢您的帮助。

【问题讨论】:

  • 如果你尝试var_dump($var->modify('first monday of may 2017')); 应该可以工作

标签: php date datetime


【解决方案1】:

您需要of 关键字。

$var = new DateTime();
var_dump($var->modify('first monday of May 2017'));

来自PHP documentation for relative formats

还观察到“序数空间日名称空间'of'”和“'last'空间日名称空间'of'”中的“of”有一些特殊的作用。
它将日期设置为 1。 "ordinal dayname 'of'" 不会提前到另一天。 (例如:“2008 年 7 月的第一个星期二”表示“2008-07-01”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多