php millisecond在服务器和本地之间使用

时间:2013-04-17 05:16:54

标签: php datetime

当我在服务器上执行以下代码时,它给出了以下答案:

$date1='1367276400000';

$date2=date('Y-m-d',($date1/1000));

echo "Date -> ".$date2."-->"."\n";

答案: Date -> 2013-04-29-->

当我在本地执行相同的代码时,它给出了一个不同的答案:

答案: Date -> 2013-04-30-->

本地服务器php时区是: Asia / Calcutta

生产服务器时区为: UTC

如何在两台服务器上获得相同的输出?

4 个答案:

答案 0 :(得分:2)

<强>答案

date_default_timezone_set('UTC');放在脚本的开头。

<强>解释

这将导致日期函数以UTC时区显示日期,而不管系统时区的设置是什么。

您可以强制时区为亚洲/加尔各答,但由于您提到UTC是生产环境中的时区,我认为您应该坚持使用UTC。与生产服务器环境相比,您通常可以更好地控制本地环境。如果您的PHP脚本在某些时候必须与使用系统时区的生产服务器上运行的某些其他服务进行交互,这可能很重要。

答案 1 :(得分:1)

首先使用date_default_timezone_set http://php.net/manual/en/function.date-default-timezone-set.php代码,如

 date_default_timezone_set('Asia/Calcutta');
 $date1='1367276400000';
 $date2=date('Y-m-d',($date1/1000));
 echo "Date -> ".$date2."-->"."\n";

答案 2 :(得分:0)

所以这个

date_default_timezone_set('Asia/Calcutta');
$date = date("d-m-Y");  
print 'The date is: ' . $date;

答案 3 :(得分:0)

您可以使用timezones

$today = new DateTime(null, new DateTimeZone('America/Toronto'));
$today->setTimezone(new DateTimeZone('Asia/Calcutta'));
echo today->format('Y-m-d H:i:s);