我正在尝试在具有 PHP 5.2.6 的 Solaris 服务器上使用 PHP DateTime 类,同时在运行 PHP 5.3 的本地 Windows 机器上进行测试。这是代码:
<?php
try {
$dt = new DateTime('2009-10-08');
$dt->setDate(2009,10,8);
print_r($dt);
}catch (Exception $e) {
echo $e->getMessage();
}
在测试服务器上,一切正常,打印如下:
DateTime Object ( [date] => 2009-10-08 00:00:00 [timezone_type] => 3 [timezone] => America/New_York )
在服务器上我需要使用它,但是,这是打印的:
DateTime Object ( )
删除 setDate 没有任何区别。
任何想法为什么会发生这种情况?
谢谢!
编辑
修改了脚本:
try {
echo '|', date_default_timezone_get(), '|';
date_default_timezone_set('America/New_York');
echo '|', date_default_timezone_get(), '|';
$dt = new DateTime('2009-10-08');
$dt->setDate(2009,10,8);
print_r($dt);
}catch (Exception $e) {
echo $e->getMessage();
}
服务器上的新输出:
|US/Eastern||America/New_York|DateTime Object ( )