PHP 函数 strtotime 在使用“第一个星期六”时给出错误的值


PHP function strtotime giving wrong value when using 'First Saturday'

在英国

,这一天目前是2015年1月27日。

我想找到本月的第一个星期六并使用以下代码,但它没有给我预期的 2015 年 1 月 3 日,而是显示 2015 年 1 月 31 日?我做错了什么,或者strtotime有错误吗?我的 PHP 版本是5.4.16

$time = strtotime('First Saturday');
$month1 = date("Y-m-d", $time);
echo $month1;
以上输出 2015-01-31

而不是预期的 2015-01-03

尝试通过月份和年份(或任何日期)也符合预期

$time = strtotime('January 2015 First Saturday');
$month1 = date("Y-m-d", $time);
echo $month1; //2015-01-03

因为"第一个星期六"是从给定的日期开始计算的。如果给定的日期已经是星期六,则计算下一个日期。所以你没有给出任何日期,那么它从下周六开始计算,所以试着传递一个日期

$time = strtotime('First Saturday of this month');
$month1 = date("Y-m-d", $time);
echo $month1; //2015-01-03
相关文章: