我无法为我的DateTime对象设置时区.
这是我的代码:
$dt = DateTime::createFromFormat('U',time(),new DateTimeZone('Asia/Kolkata'));
print_r($dt->getTimeZone());
Run Code Online (Sandbox Code Playgroud)
这是输出:
DateTimeZone Object
(
)
Run Code Online (Sandbox Code Playgroud)
我也尝试将这些线放在顶部(一次一个) - 没有任何成功:
date_default_timezone_set('Asia/Calcutta');
ini_set('date.timezone', 'Asia/Calcutta');
date_default_timezone_set('Asia/Kolkata');
ini_set('date.timezone', 'Asia/Kolkata');
Run Code Online (Sandbox Code Playgroud)
这是因为您在参数中指定了UNIX时间戳.看看php手册说的是什么.
当time参数包含UNIX时间戳(例如946684800)或指定时区(例如2010-01-28T15:00:00 + 02:00)时,将忽略timezone参数和当前时区.
您正在尝试做的事情可以轻松完成,
$dt = new DateTime("now", new DateTimeZone('Asia/Kolkata'));
Run Code Online (Sandbox Code Playgroud)
如果您有一个包含UNIX时间戳的变量,请首先使用它创建一个DateTime对象.然后设置新的TimeZone.
$dt = new DateTime("@$timestamp");
$dt->setTimezone( new DateTimeZone('Asia/Kolkata'));
Run Code Online (Sandbox Code Playgroud)
http://codepad.viper-7.com/topBCR
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |