我在php 5.6.30中使用日期函数$now=date("Y-m-d H:i:s");
,
浏览器输出为string(19) "2017-04-21 02:54:54"
,这是异常的。
php.ini设置为date.timezone = PRC
Centos 7系统时间:
[root@localhost sync]# date
Fri Apr 21 14:53:20 CST 2017
虽然我在同一系统中安装了PHP 7.0.16,但php.ini具有相同的配置,但日期功能中的日期输出正常(24位数时间)。 为什么会发生这种情况以及如何让日期正常工作。
答案 0 :(得分:3)
这是一个时区问题。
在您的php.ini中,您设置了时区PRC
(中国),但您的系统时间输出以CST
(Amerika)为单位给出时间。
换一种说法:
您的PHP代码确实为您提供了24小时格式,但在不同的时区,实际上它在02:54:54
如果你需要在不同的时区(如UTC
)获得时间,你可以这样设置:
date_default_timezone_set('UTC');
如果您需要其他本地时区,可以在list of supported timezones in the PHP documentation
中了解可能的值答案 1 :(得分:1)
尝试下面的日期时区代码
<?php
date_default_timezone_set('Asia/Shanghai');
echo date("Y-m-d H:i:s");
?>
答案 2 :(得分:0)
我将代码添加到php.ini date.timezone = Asia/Shanghai
,
并安装chrony并启动它以进行同步。它有效。