页面展示时间比数据表中存储的时间快16小时

现象

  • 背景

两台主机:本地是windows系统,服务器是linux系统。
两个项目:本地和服务器上分别部署了一个项目。
一个数据库:数据库mysql,装在服务器上。两个主机上的项目连的是同一个数据库。

  • 现象

同一个页面在两个项目中的展示时间不一致:
本地:
这里写图片描述
服务器:
这里写图片描述
数据表中数据:
这里写图片描述

本地项目连服务器数据库,页面显示时间与数据库一致。
服务器项目连服务器数据库,页面显示时间比数据库快16小时。

解决办法

  • 修改服务器时间和时区,与北京时间一致。

1.查看服务器时间和时间:date -R

[root@host231 ~]# date -R
Tue, 06 Feb 2018 12:35:48 -0800

-0800表示西八区,是美国旧金山所在的时区,北京是东八区(+0800)

2.修改时区:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

[root@host231 ~]# date -R
Tue, 06 Feb 2018 12:35:48 -0800
[root@host231 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? y
[root@host231 ~]# date -R
Wed, 07 Feb 2018 04:36:11 +0800

3.修改系统时间:date -s “YYYY-MM-DD hh:mm:ss”

[root@host231 ~]# date -R
Wed, 07 Feb 2018 04:46:21 +0800
[root@host231 ~]# date -s "20180206 16:49:00"
Tue Feb  6 16:49:00 CST 2018
[root@host231 ~]# date -R
Tue, 06 Feb 2018 16:49:02 +0800
  • 修改数据库时区,与北京时区一致。

MySQL 时区默认是服务器的时区。可以通过以下命令查看

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | PST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.01 sec)

可以通过修改my.cnf在 [mysqld] 之下加default-time-zone=timezone来修改时区。如:default-time-zone = ‘+8:00’改了记得重启msyql。
注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable ‘default-time-zone=+8:00’
另外,也可以通过命令 set time_zone = timezone比如北京时间(GMT+0800)set time_zone = ‘+8:00’;

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-02-06 00:49:16 |
+---------------------+
1 row in set (0.00 sec)

mysql> set time_zone = '+8:00';
Query OK, 0 rows affected (0.02 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-02-06 16:50:57 |
+---------------------+
1 row in set (0.00 sec)

然后重启mysql
至此,数据表中新增的数据再本地和服务器中系统展示的时间一致了。
虽然之前新增的的数据,在不同系统中展示还是不一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值