我希望获得上周一(上周)和上周末(周日),但是当代码在服务器上运行时,它与在localhost上运行的时间不同。
这是我的代码:
$start_past = strtotime("last week");
$end_past = strtotime("+6 day",$start_past);
echo $start_past_qry = date("m/d/Y",$start_past);
echo $end_past_qry = date("m/d/Y",$end_past);
服务器上的结果似乎在本周下降。我想得到上周的范围。
答案 0 :(得分:3)
来自php手册
http://php.net/manual/en/function.strtotime.php
除非在该参数中指定了时区,否则此函数的每个参数都使用默认时区。除非是这样,否则请注意不要在每个参数中使用不同的时区。有关定义默认时区的各种方法,请参阅 date_default_timezone_get()。
您需要定义默认时区,可以通过功能
来完成还要注意:
在 PHP 5.3.0 之前,提供给strtotime()的时间参数的相对时间格式(例如本周,上周,上周和下周)被解释为7天相对于当前日期/时间的期间,而不是周一至周日的周期。
请确保您拥有相同的php版本且至少为5.3.0检查manual of strtotime function以了解更多详情
答案 1 :(得分:2)
$Current = Date('N');
$DaysToSunday = 7 - $Current;
$DaysFromMonday = $Current - 1;
$Sunday = Date('d/m/y', StrToTime("+ {$DaysToSunday} Days")) . "<br>";
$date = Date('Y/m/d', StrToTime("- {$DaysFromMonday} Days"));
$mod_date = strtotime($date."- 7 days");
echo $last_week_monday=date("Y/m/d",$mod_date) . "<br>";