如何在不影响已插入数据的情况下更改服务器时区?

问题描述

我有一个带有Mysql数据库的PHP项目。问题是时间相关数据根据我的要求显示有误。

我希望将时区设置为 “时区Port Louis,毛里求斯GMT + 04:00”

如何更新时区,以便数据库中的每个数据都显示Mauritius时区?以及在哪里更新时区?

如果我更改了时区,已经插入的数据会自动更新吗?否则如何更新数据库中每个记录的时区?

解决方法

通常最好将服务器保持在UTC状态,以使安全日志在计算机之间对齐。

在数据库中存储时间戳时,建议使用包含时区的时间戳字段。这意味着服务器使用的时区是不相关的。

另外,请注意,时间转换通常由SQL客户端根据运行SQL客户端的计算机的区域设置来执行。这通常会导致混乱,因为在SQL客户端中输出中看到的时间实际上与存储在列中的时间不匹配。 (一种测试方法是将字段强制转换为Text字段,以查看该字段中的“原始”值,而无需SQL客户端对其进行转换。)

我曾在一家公司中工作,该公司曾经将其服务器设置为公司所在的时区,但是随着公司规模的扩大以及他们在多个位置拥有服务器,这成为了一个问题。因此,最好将所有计算机都保留在UTC中,并特别在显示它们时转换时间。

,

您有3种解决方案:

  • 如果有专用服务器,则可以更改服务器配置。
  • 使用date_default_timezone_set在应用级别更改自己
  • 在php.ini中的php配置的全局级别更改自己

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...