马富天PHP博客

【PHP 面试真题】如何解决网站中输出的系统当前时间与本地的当前时间不符合的问题?

学习笔记 面试宝典 2017-07-28 17:02:33 8 0

【摘要】在 PHP 语言中,日期、时间函数依赖于服务器的地区设置,而 PHP 默认设置的是标准的格林尼治时间(即采用的是零时区),所以,如果您没有对 PHP 的时区进行设置,那么您使用日期、时间函数获取的将是英国伦敦本地时间(即零时区的时间)。

这也就是为什么网站中输出的系统当前时间与本地的当前时间不符合的原因。解决这一问题有以下两种方法。

第一种,修改 PHP 配置文件 php.ini 中,定位到 [date]下的 ";date.timezone=" 选项,去掉前面的分号,并设置它的值为当地所在时区使用的时间。

例如,如果当地所在的时区为东八区,那么就可以设置为: "date.timezone=" 的值为 PRC、Asia/Hong_Kong、Asia/Shanghai(上海)或者 Asia/Urumqi(乌鲁木齐)等,这些都是东八区的时间。设置完成之后,保存配置文件,并重启 Apache 服务器即可。

第二种方式,在应用程序中,在日期、时间函数之前使用 date_default_timezone_set() 函数来完成对时区的设置。 date_default_timezone_set() 函数的使用语法如下:

  1. date_default_timezone_set(timezone);

参数 timezone 为 PHP 可识别的时区名称,如果时区名称 PHP 无法识别,则系统默认采用 UTC 时区。

例如:设置北京时间可以使用的时区包含: PRC(中华人民共和国)、Asia/Chongqing(重庆)、Asia/Shanghai(上海)或者 Asia/Urumqi(乌鲁木齐),这几个时区标识都是等效的,都指北京时间(东八区)。

另外知识扩展:地球上的时区是如何划分的呢?整个地球分为 24 个时区,每个时区都有自己的本地时间。在同一个时间,每个时区的本地时间相差 1~23小时。例如,英国伦敦本地时间与北京本地时间相差 8 个小时。在国际无线通信领域,使用一个统一的时间,称为通用协调时间(Universal Time Coordinated , UTC),UTC 与格林尼治时间相同,也与英国伦敦的本地时间相同。

版权归 马富天PHP博客 所有

本文标题:《【PHP 面试真题】如何解决网站中输出的系统当前时间与本地的当前时间不符合的问题?》

本文链接地址:http://www.mafutian.net/293.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 PHP 含秘钥的可逆加密解密算法 》 下一篇《 使用 PHP 创建网页快捷方式的代码 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码