PHP设置正确的时区
我有以下代码PHP设置正确的时区,php,timezone,Php,Timezone,我有以下代码 日期(“D j M g a”,标准时间($start))。“-”。日期(“ga”,标准时间($finish)); 上述代码以我想要的正确格式输出Thu Jan 1 12 pm-12pm“string(22)”Thu Jan 1 12 pm-12pm,但如何才能获得正确的日期和时间 Pacific/Auckland是我的时区更喜欢在php.ini文件中使用如下行设置默认时区: date.timezone = "Pacific/Auckland" 如果出于某种原因,您无法编辑php
日期(“D j M g a”,标准时间($start))。“-”。日期(“ga”,标准时间($finish));
上述代码以我想要的正确格式输出Thu Jan 1 12 pm-12pm“string(22)”Thu Jan 1 12 pm-12pm
,但如何才能获得正确的日期和时间
Pacific/Auckland
是我的时区更喜欢在php.ini
文件中使用如下行设置默认时区:
date.timezone = "Pacific/Auckland"
如果出于某种原因,您无法编辑php.ini
,则可以在php脚本的顶部设置时区(仅对该脚本有效):
您可以使用设置时区
date_default_timezone_set('America/Los_Angeles');
更多信息如果要在脚本中设置,请尝试
date\u default\u timezone\u set
-设置脚本中所有日期/时间函数使用的默认时区
date_default_timezone_set('America/Los_Angeles');
但是,如果您想使用与php.ini相同的时区,那么在php.ini中设置将是更好的解决方案
date.timezone = "America/Los_Angeles"
问题是传递给
strotime
-/Date(1354323600000)/
字符串的内容的格式对于strotime
函数无效
实际上,它是一个以毫秒为单位的常规unix时间戳
因此,显而易见的解决方案——是清除除数字以外的所有数据,并将其除以1000:
$unix_time_with_ms = preg_replace('~\D~', '', $date);
echo date('Y-m-d H:i:s', $unix_time_with_ms / 1000);
date.timezone = "America/Los_Angeles"
$unix_time_with_ms = preg_replace('~\D~', '', $date);
echo date('Y-m-d H:i:s', $unix_time_with_ms / 1000);