[英]PHP timezone from php.ini not being applied
由于某些原因, date()
函数未输出经过时区调整的日期/时间。 在调试时,我发现了一个奇怪的差异。 我的时区在php.ini
定义为America/New_York
。 当我这样称呼时:
echo ini_get('date.timezone');
我得到America/New_York
,这是我所期望的。 但是,当我这样称呼时:
echo date_default_timezone_get();
我得到UTC
。 似乎这是由date()
方法负责返回UTC时区中的时间。 为什么会这样呢? 如何使PHP尊重php.ini
的时区?
更新
我最终只是想从date('Ymd G:i:s')
获得时区调整后的时间。 由于我的时区是在php.ini中设置的,如何从date()
获取正确的日期/时间?
如果我了解您的问题中尊重权利的含义,您想知道date_default_timezone_get()
没有返回ini设置。 您可以通过在get操作之前调用以下行来更改它:
date_default_timezone_set(ini_get('date.timezone'));
另请参见示例2,从手册中获取时区的缩写,内容涉及:
<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
上面的示例将输出:
America/Los_Angeles => America/Los_Angeles => PST
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.