php.ini中的时区设置date.timezone = PRC

标签: , , , ,

无意中发现 lnmp 默认的 php.ini 配置中有一行 date.timezone = PRC。PRC,People’s Republic of China,中华人民共和国,也就是日期使用中国的时区。

date.timezone 是 PHP 5.1 中新增加的配置文件参数,默认 date.timezone 是被注释掉的,也就是默认时区是 utc,lnmp 改为了 date.timezone = PRC,这样可以解决时间相差八小时的问题,看来 lnmp 的本土化工作做得不错。不过貌似这个参数一般都设成 Asia/Shanghai 吧?在 PHP 官方文档上找了半天才找到 PRC 这个参数,它不在 Asia 这个分类中,而在 Others,一般人都会在 Asia 里面找吧。

搜索了一下 PHP 源码,在 ext/date/lib/timezonemap.h 中看到如下代码

{ "cst",   0,  28800, "Asia/Chongqing"                },
{ "cst",   0,  28800, "Asia/Chungking"                },
{ "cst",   0,  28800, "Asia/Harbin"                   },
{ "cst",   0,  28800, "Asia/Kashgar"                  },
{ "cst",   0,  28800, "Asia/Macao"                    },
{ "cst",   0,  28800, "Asia/Macau"                    },
{ "cst",   0,  28800, "Asia/Shanghai"                 },
{ "cst",   0,  28800, "Asia/Taipei"                   },
{ "cst",   0,  28800, "Asia/Urumqi"                   },
{ "cst",   0,  28800, "PRC"                           },
{ "cst",   0,  28800, "ROC"                           },

对 PHP 源码的时间部分没有什么研究,姑且认为这几个参数都表示 UTC+8 的东八区中国的北京时间吧。

当然,可以在 PHP 代码中调用 date_default_timezone_set 函数设置运行时的时区,这是常识,我就不多说了。

随机文章:

  1. ActivePython PyPM error: (OperationalError) unable to open database file None None
  2. 实现简单的VBS加密
  3. VBS发送带Cookie的HTTP请求
  4. 鄙视雨林木风
  5. BAT批处理编辑器iBat

6 条评论 发表在“php.ini中的时区设置date.timezone = PRC”上

  1. ihipop说道:

    一般人都会在 Google 里面找
    你不是正常人

  2. swufeljs说道:

    前连天遇到个难题 不小心把UT里面做种的种子和数据删了 然后想用SuperRecovery超级硬盘数据恢复软件恢复一下 但是扫描完点击恢复却要求输注册码 好吧 用了人家的东西给钱很正常 但我盗版用习惯了
    所以求破解一下这个软件 我试过其他免费的 比如easyrecovery 但觉得还是这个更好用 好了 就是这些 谢谢 希望能帮这个忙 不管怎样 我会一直关注你的博客的 学到一些小技巧还是不错的 虽然我看不懂你写的那些程序 (貌似病句很多)

留下回复