php:从给定日期开始的一周中的某一天,使用;日期“;功能:比预期答案提前一天

php:从给定日期开始的一周中的某一天,使用;日期“;功能:比预期答案提前一天,php,Php,几天前我刚刚开始学习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);

几天前我刚刚开始学习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文件

对这里出了什么问题有什么建议吗


非常感谢。

这是因为变量中有输入错误

echo "first day = ". strtolower(date("D",$firsmonthdate))."\n";
                                             ^^
应该是这样

echo "first day = ". strtolower(date("D",$firstmonthdate))."\n";
                                             ^^
如果您的
error\u reporting
处于启用状态,则您将收到
通知:未定义变量:firsmonthdate

您需要注意php中的日期。就像你在这里得到的一样
日期为
1970-01-01
,如果在另一个表示中使用该日期,则其
Thu,1970年1月1日00:00:00+0000

尝试将其添加到代码之前:
date\u default\u timezone\u set('Asia/Singapore')
并查看是否有帮助?尝试了此建议,但输出保持不变。谢谢你查这个问题。对不起,这个打字错误在我写的代码里,不是在我的文件里。为这个错误道歉。我现在在这里编辑了这个问题。谢谢你指出。我在代码的另一行中发现了这个打字错误。真不敢相信我错过了这个。没有错误报告。现在我将查看如何打开错误报告。非常感谢你在这里的帮助。很抱歉问了个愚蠢的问题:(