在PHP中设置时区


Settings timezone in PHP

本问题已经有最佳答案,请猛点这里访问。

我正在尝试使用特定时区显示存储在MySQL数据库中的时间。

1
$time = '2014-01-20 21:40:13';

有没有办法在GMT+5.30 or Asia/Kolkata (timezone)打印这个时间?


date_default_timezone_set( )函数将需要时区作为单引号中的参数,下面的所有date()将显示所请求时区中的时间

1
2
3
4
<?php
    date_default_timezone_set("Asia/Kolkata");
    echo date('d-m-Y H:i:s'); //Returns IST
?>

面向对象的风格

1
2
3
4
5
6
7
8
9
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') ."
"
;

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') ."
"
;
?>

程序风格

1
2
3
4
5
6
7
8
9
<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') ."
"
;

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') ."
"
;
?>

文档:http://us3.php.net/manual/en/datetime.construct.php


1
2
3
4
5
**Try the code........**

<?php date_default_timezone_set('America/Los_Angeles');?>

More detail here: http://www.php.net/manual/en/function.date-default-timezone-set.php

让MySQL在UNIX_TIMESTAMP() UNIX时间戳中返回时间,并使用PHP DateTime将其格式化为您想要的时区。