我的输入是时区值(比如"america/los_angeles"),其输出应该是时区缩写(比如说"PST").
输入:"america/los_angeles"
输出:"PST"
输入:"Asia/Kolkata"
输出:"IST"
我知道这可以通过将时区值映射到其相应的缩写来完成,但这很耗时.
那么有没有PHP内置函数,虽然我可以实现这一点?
只需使用date('T')函数来获取时区.你需要设置它:
$input = 'america/los_angeles';
date_default_timezone_set($input);
echo date('T');
Run Code Online (Sandbox Code Playgroud)
参考资料在手册中.T(capital)对应于Timezone缩写
另一种变化是使用DateTime类:
$input = 'Asia/Kolkata';
$dt = new DateTime(null, new DateTimeZone($input));
echo $dt->format('T');
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,您还需要考虑输入是否正确,这会引发异常,因为它无效.
您可以通过try/catch以下方式处理:
$input = 'Asia/Kolkata';
try {
$dt = new DateTime(null, new DateTimeZone($input));
echo $dt->format('T');
} catch(Exception $e) {
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)