加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为什么PHP date()函数会给出不一致的时间?突然出现了2个小时

发布时间:2020-12-13 22:33:12 所属栏目:PHP教程 来源:网络整理
导读:我有一个页面,我有一个日期/时间插入 MySQL数据库. 服务器的时区提前两个小时. 在我的php.ini中,我有date.timezone = America / Los_Angeles 我注意到有时候时间已经过了两个小时. MySQL字段是类型datetime,而不是null(我只是注意到我没有设置默认值) 我正在
我有一个页面,我有一个日期/时间插入 MySQL数据库.

服务器的时区提前两个小时.

在我的php.ini中,我有date.timezone = America / Los_Angeles

我注意到有时候时间已经过了两个小时.

MySQL字段是类型datetime,而不是null(我只是注意到我没有设置默认值)

我正在使用Codeigniter,如果这很重要的话.

这就是我有时间插入数据库的方法:

$newData [‘time’] = $time = date(“Y-m-d G:i:s”);

之后我插入了一行代码将时间写入错误日志.

log_message(‘错误’,“日期时间是$time”);

为什么时间会这样变化?这部分日志是当地时间下午2:00到2:30.

这一切都来自我网站上的一个页面,耗时29分钟.

110 ERROR - 2011-12-20 14:00:57 --> Date time is 2011-12-20 14:00:57
111 ERROR - 2011-12-20 14:01:38 --> Date time is 2011-12-20 14:01:38
112 ERROR - 2011-12-20 14:01:57 --> Date time is 2011-12-20 14:01:57
113 ERROR - 2011-12-20 16:02:19 --> Date time is 2011-12-20 16:02:19
114 ERROR - 2011-12-20 16:02:28 --> Date time is 2011-12-20 16:02:28
115 ERROR - 2011-12-20 14:03:26 --> Date time is 2011-12-20 14:03:26
116 ERROR - 2011-12-20 14:03:32 --> Date time is 2011-12-20 14:03:32
117 ERROR - 2011-12-20 14:03:46 --> Date time is 2011-12-20 14:03:46
118 ERROR - 2011-12-20 14:04:43 --> Date time is 2011-12-20 14:04:43
119 ERROR - 2011-12-20 14:04:53 --> Date time is 2011-12-20 14:04:53
120 ERROR - 2011-12-20 14:04:58 --> Date time is 2011-12-20 14:04:58
121 ERROR - 2011-12-20 14:05:03 --> Date time is 2011-12-20 14:05:03
122 ERROR - 2011-12-20 16:07:05 --> Date time is 2011-12-20 16:07:05
123 ERROR - 2011-12-20 16:07:25 --> Date time is 2011-12-20 16:07:25
124 ERROR - 2011-12-20 16:07:54 --> Date time is 2011-12-20 16:07:54
125 ERROR - 2011-12-20 16:08:05 --> Date time is 2011-12-20 16:08:05
126 ERROR - 2011-12-20 16:08:15 --> Date time is 2011-12-20 16:08:15
127 ERROR - 2011-12-20 16:09:04 --> Date time is 2011-12-20 16:09:04
128 ERROR - 2011-12-20 16:09:14 --> Date time is 2011-12-20 16:09:14
129 ERROR - 2011-12-20 16:09:44 --> Date time is 2011-12-20 16:09:44
130 ERROR - 2011-12-20 16:10:08 --> Date time is 2011-12-20 16:10:08
131 ERROR - 2011-12-20 16:10:27 --> Date time is 2011-12-20 16:10:27
132 ERROR - 2011-12-20 14:12:16 --> Date time is 2011-12-20 14:12:16
133 ERROR - 2011-12-20 14:15:30 --> Date time is 2011-12-20 14:15:30
134 ERROR - 2011-12-20 14:16:20 --> Date time is 2011-12-20 14:16:20
135 ERROR - 2011-12-20 14:17:55 --> Date time is 2011-12-20 14:17:55
136 ERROR - 2011-12-20 14:18:51 --> Date time is 2011-12-20 14:18:51
137 ERROR - 2011-12-20 14:19:16 --> Date time is 2011-12-20 14:19:16
138 ERROR - 2011-12-20 14:20:08 --> Date time is 2011-12-20 14:20:08
139 ERROR - 2011-12-20 14:27:29 --> Date time is 2011-12-20 14:27:29
140 ERROR - 2011-12-20 14:29:31 --> Date time is 2011-12-20 14:29:31
141 ERROR - 2011-12-20 14:29:55 --> Date time is 2011-12-20 14:29:55

任何人都可以为我阐明这一点吗?

谢谢,

标记

解决方法

我的猜测将是你的系统时间问题,就像我说的那样,或者正如John B所提到的,PHP时区可能会在CI配置中的某个地方被覆盖.

假设您正在运行linux / gnu框,您应该将错误日志记录更改为以下内容:

log_message(‘error’,“PHP time is $time,System time is”.exec(‘date’));

至少应该告诉您问题是系统时间还是PHP的时间

(注意:你正在寻找像你的PHP时间那样跳跃时间的系统时间,系统时间与PHP时间相差一两秒是正常的)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读