我有以下代码:
$date = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone('Asia/Karachi'));
echo $date->format('Y-m-d H:i:s');
输出:2015-08-26 17:46:05
实际结果应为:2015-08-26 13:46:05
如何设置时区,以便实际输出?
方法1(编辑php . ini)
1)打开php.ini文件 2)在php.ini文件 的顶部添加以下代码行date.timezone = "Asia/Karachi"
3)重新启动php.
注意:您可以在这里找到时区列表:http://php.net/manual/en/timezones.asia.php
方法2 (Using date_default_timezone_set)
如果您无法访问php.ini
文件,则可以使用date_default_timezone_set("Asia/Karachi")
。只要把它放在应用程序的入口点。
在你的代码中使用这一行
date_default_timezone_set("Asia/Karachi");
<?php
date_default_timezone_set("Asia/Karachi");
echo date('d-m-Y H:i:s');
?>
最好将其保存在配置文件中,因为即使您在其他地方使用相同的函数,也必须重新声明该语句。
date_default_timezone_set("Asia/Karachi");
如果你正在使用任何框架,如yii, CI或php..将这一行保留在index.php文件中,该文件稍后会加载框架的其余部分。