如何将特定时区转换为PHP中相应的缩写?

时间:2016-02-18 06:39:19

标签: php timezone

我的输入是时区值(比如“america / los_angeles”),其输出应该是时区缩写(比如说“PST”)。

输入:“america / los_angeles”
输出:“PST”

输入:“Asia / Kolkata”
输出:“IST”

我知道这可以通过将时区值映射到相应的缩写来完成,但这很耗时。

那么有没有PHP内置函数,虽然我可以实现这个目标吗?

2 个答案:

答案 0 :(得分:5)

只需使用date('T')函数即可获得时区。你需要设置它:

$input = 'america/los_angeles';
date_default_timezone_set($input);
echo date('T');

引用位于manualT(大写)对应时区缩写

另一种变体是使用DateTime类:

$input = 'Asia/Kolkata';
$dt = new DateTime(null, new DateTimeZone($input));
echo $dt->format('T');

编辑:请注意,如果输入正确与否,您还需要考虑,这会引发异常,因为它无效。

您可以通过try/catch处理它:

$input = 'Asia/Kolkata';
try {
    $dt = new DateTime(null, new DateTimeZone($input));
    echo $dt->format('T');  
} catch(Exception $e) {
    echo $e->getMessage();
}

答案 1 :(得分:0)

来自php的documentation page

$dateTime = new DateTime();
$dateTime->setTimeZone( new DateTimeZone( 'America/Los_Angeles' ) ); 
return $dateTime->format( 'T' );

将返回PST