我的输入是时区值(比如“america / los_angeles”),其输出应该是时区缩写(比如说“PST”)。
输入:“america / los_angeles”
输出:“PST”
输入:“Asia / Kolkata”
输出:“IST”
我知道这可以通过将时区值映射到相应的缩写来完成,但这很耗时。
那么有没有PHP内置函数,虽然我可以实现这个目标吗?
答案 0 :(得分:5)
只需使用date('T')
函数即可获得时区。你需要设置它:
$input = 'america/los_angeles';
date_default_timezone_set($input);
echo date('T');
引用位于manual。 T
(大写)对应时区缩写
另一种变体是使用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