php日期无法获得24位数的时间

时间:2017-04-21 07:04:10

标签: php date

我在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位数时间)。 为什么会发生这种情况以及如何让日期正常工作。

3 个答案:

答案 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并启动它以进行同步。它有效。