1

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

$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

4 回答 4

2

回答

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

解释

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

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

于 2013-04-17T05:19:32.630 回答
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";
于 2013-04-17T05:19:24.570 回答
0

所以这

date_default_timezone_set('Asia/Calcutta');
$date = date("d-m-Y");  
print 'The date is: ' . $date;
于 2013-04-17T05:19:29.360 回答
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);
于 2013-04-17T05:29:09.743 回答