几天前我刚刚开始使用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文件。
有什么建议吗?
这是因为你的变量
中有typoecho "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