PHP设置时区

4
我有以下代码:
$date = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone('Asia/Karachi'));  
echo $date->format('Y-m-d H:i:s');

输出:2015年8月26日 17:46:05
实际结果应为:2015年8月26日 13:46:05

如何设置时区,以便获得实际输出?

3个回答

5

方法一(编辑Php.ini文件)

1)打开您的php.ini文件。

2)在您的php.ini文件顶部添加以下代码:

date.timezone = "Asia/Karachi"

3) 重新启动php。

注意: 您可以在此处找到时区列表: http://php.net/manual/en/timezones.asia.php

方法2 (使用date_default_timezone_set)

如果您没有访问php.ini文件的权限,可以使用date_default_timezone_set("Asia/Karachi")。只需将其放在应用程序的入口点即可。

http://php.net/manual/en/function.date-default-timezone-set.php


完全没有必要更改ini文件中的任何内容。 - Rizier123
我已经设置了时区,但它没有显示实际时间。 - Sobia Safdar
@SobiaSafdar 你是怎么设置的? - Danyal Sandeelo
@SobiaSafdar 没问题 - Slay

4

在你的代码中使用这行

date_default_timezone_set("Asia/Karachi"); 

like

  <?php 
    date_default_timezone_set("Asia/Karachi"); 
    echo date('d-m-Y H:i:s'); 
?>

这也显示相同的结果,而不是实际的结果。 - Sobia Safdar

1
最好将其放在配置文件中,因为即使您在别处使用相同的函数,也必须重新声明此语句。
  date_default_timezone_set("Asia/Karachi"); 

如果您正在使用任何框架,如yii、CI或cake php,请在index.php文件中保留此行代码,它基本上会加载框架的其余部分。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接