PHP - 在服务器和本地

时间:2015-09-12 05:50:03

标签: php

我需要从位于美国德克萨斯州的服务器获取当前的印度时间。

我已将时间存储为UTC时间戳。 我正在尝试这种方式。

date_default_timezone_set('UTC');
echo date('O').'<br>';
echo date("F j, Y, h:i:s a", time()+(330*60)).'<br>';

I get correct time on my local server.
+0000
September 12, 2015, 10:59:53 am

and this on remote server.
+0000
September 12, 2015, 11:19:14 am

请查看并说明为什么远程服务器的时间不同。

3 个答案:

答案 0 :(得分:2)

time()函数正在返回GMT时间。尝试使用echo (new DateTime())->format('r');代替

答案 1 :(得分:1)

为什么不直接将默认时区设为Asia/Calcutta

http://php.net/manual/en/timezones.asia.php

答案 2 :(得分:1)

您使用+(330*60)位给时间带来奇怪的偏移。这不是正确的做法。

尝试

date_default_timezone_set("Asia/Calcutta"); 
echo date("F j, Y, h:i:s a", time() ).'<br>';

或尝试

 ini_set( 'date.timezone', 'Asia/Calcutta' );
 echo date("F j, Y, h:i:s a", time() ).'<br>';