【发布时间】:2012-10-01 20:11:45
【问题描述】:
使用 PHP 5.3 并给出字符串 Sat, 20 Oct 2012 05:00:00 GMT:
print $start;
$start = strtotime($start);
var_dump($start);
$hour = date('H:i A', $start);
die($hour);
我程序中的代码 sn-p 返回:
Sat, 20 Oct 2012 05:00:00 GMT
int(1350709200)
00:00 AM
var_dump 正确,但日期返回错误答案。
还要注意,将 sn-p 更改为读取:
print $start;
$start = strtotime($start);
die($start);
$hour = date('H:i A', $start);
die($hour);
返回:
Sat, 20 Oct 2012 05:00:00 GMT
第一个骰子返回一个空字符串,一个空值,我只能假设它实际上是一个布尔值 FALSE。
所以我在这里实际上遇到了两个不同的问题。根据我是var_dump 还是死亡,相同的答案会返回两个不同的内容,第二个是该日期似乎收到了 FALSE 答案,而不是 var_dump 答案。
帮助?
【问题讨论】:
-
我会说使用
die()来调试变量不是要走的路。相反,如果您想调试变量然后终止程序,请使用var_dump($foo); die();。 -
另外,我猜你确实意识到
die()结束了你的脚本;这使得脚本仅在您的第二个示例中运行到第 3 行。后面的任何事情都不会被执行。 -
可能与时区有关。您的系统设置为哪个时区,您的 php.ini 设置为哪个时区?
-
你为
date.default_timezone设置了哪个时区? -
尝试添加 date_default_timezone_set('UTC');在代码之前,应该告诉你它是否是时区问题