如何在php中获得特定国家的正确日期时间

Lal*_*tar 2 php mysql

您好,我需要在用户注册时节省时间。我正在尝试在 PHP 中生成印度特定时间的代码。

 $timezone = new DateTimeZone("Asia/Kolkata" );
        $date = new DateTime();
        $date->setTimezone($timezone );
        $dtobj = $date->format('Y-m-d H:i:s');
echo $dtobj;
Run Code Online (Sandbox Code Playgroud)

它正在工作,但没有显示正确的时间。我正在使用 Godaddy 服务器。代码给出的时间是 2014-01-13 10:21:29 但实际时间是 2014-01-13 02:20:55。我在谷歌上搜索并尝试了几乎所有功能,但得到相同的差异。我该怎么做才能获得准确的时间。

小智 5

使用 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";

?>
Run Code Online (Sandbox Code Playgroud)

输出:

UTC:     2014-04-05 13:45:56
Lisbon:  2014-04-05 14:45:56
Kolkata: 2014-04-05 19:15:56
Run Code Online (Sandbox Code Playgroud)