您好我需要在用户注册时节省时间。我正在尝试PHP中的代码来生成印度特定的时间。
$timezone = new DateTimeZone("Asia/Kolkata" );
$date = new DateTime();
$date->setTimezone($timezone );
$dtobj = $date->format('Y-m-d H:i:s');
echo $dtobj;
它正在工作但没有显示正确的时间。我正在使用Godaddy服务器。 代码给出的时间是2014-01-13 10:21:29但实际时间是2014-01-13 02:20:55。我在Google上搜索并尝试了几乎所有功能,但获得了相同的差异。我该怎么做才能获得准确的时间。
答案 0 :(得分:1)
我遇到过许多基于时间的问题,这些问题已经通过修改服务器的php.ini文件得到了解决(希望你有权访问这个?)。我发现在其他地方(即在脚本中)设置时区是徒劳的。
编辑php.ini文件:
/etc/php5/apache2/php.ini
或类似的);date.timezone =
行(通常是第1018行);
)date.timezone = Asia/Kolkata
sudo service apache2 restart
答案 1 :(得分:1)
使用date_default_timezone_set()函数设置默认时区:
<?php
date_default_timezone_set('UTC');
$date = new DateTime('now');
echo 'UTC: '.$date->format('Y-m-d H:i:s')."\n";
$date = new DateTime('now', new DateTimeZone('Europe/Lisbon'));
echo 'Lisbon: '.$date->format('Y-m-d H:i:s')."\n";
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo 'Kolkata: '.$date->format('Y-m-d H:i:s')."\n";
?>
输出:
UTC: 2014-04-05 13:45:56
Lisbon: 2014-04-05 14:45:56
Kolkata: 2014-04-05 19:15:56