【发布时间】:2011-10-31 19:50:48
【问题描述】:
我正在尝试编写一些 php 来确定给定工作日下一次出现的日期(Y-m-d 格式)。
date('Y-m-d', strtotime('next monday'));
回来了
2011-08-29
而不是
2011-08-22
在我的服务器上。不知道为什么。我的服务器是亚马逊美国东海岸数据中心的一个 EC2 实例,目前是 2011-08-21 9:40:00。
编辑 1
同样date('Y-m-d', strtotime('next sunday')); 返回2011-08-28 而不是今天。我在http://writecodeonline.com/php/ 上试用了这段代码……开始认为测试仪不准确。
【问题讨论】:
-
我会更多地查看您服务器的时区设置:“此函数将使用 TZ 环境变量(如果可用)来计算时间戳。从 PHP 5.1.0 开始,有更简单的方法来定义在所有日期/时间函数中使用的时区。该过程在 date_default_timezone_get() 函数页面中进行了说明。 php.net/manual/en/function.strtotime.php
-
我还建议先检查时区。
date('Y-m-d', strtotime('today'));的含义是什么?