Php:使用"date"功能:提前一天得到预期结果


php: day of the week from given date using "date" function: getting one day ahead of expected answer

几天前我刚刚开始使用php。我正在尝试获取特定日期的星期几。

$firstmonthdate = strtotime("7/1/2015");
//print what my timezone is, for clarity's sake for this question
$myTimezone = date_default_timezone_get(); 
echo $myTimezone."'n"."first day = ".date("r",$firstmonthdate);
这段代码的输出如下:
Asia/Singapore
first day = Wed, 01 Jul 2015 00:00:00 +0800

到目前为止一切顺利。我的问题在下一行代码中:

echo "first day = ". strtolower(date("D",$firstmonthdate))."'n";
这行代码的输出是:
first day = thu

如上所示,正确答案是wed,但我得到的是thu,我完全困惑了。这可能是由于新加坡和格林尼治时间之间的时区差异,但我不知道为什么和如何解决它。如上所示,我已经正确设置了本地时区,并在本地笔记本电脑上通过CLI界面运行。本地web服务器也拾取相同的php.ini文件。

有什么建议吗?

这是因为你的变量

中有typo
echo "first day = ". strtolower(date("D",$firsmonthdate))."'n";
                                             ^^

应该改成

echo "first day = ". strtolower(date("D",$firstmonthdate))."'n";
                                             ^^

如果你的error_reporting是打开的,那么你会得到一个Notice: Undefined variable: firsmonthdate

你需要注意php中的日期。在这里你得到日期为1970-01-01,如果在其他表示中使用,则为Thu, 01 Jan 1970 00:00:00 +0000