当前位置:首页 > PHP教程 > php日期 > 列表

PHP date_default_timezone_set()设置时区操作实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-07 17:10:30 浏览: 评论:0 

本文实例讲述了PHP date_default_timezone_set()设置时区操作,分享给大家供大家参考,具体如下:

  1. <?php 
  2. echo function_exists(date_default_timezone_set)."<br>";//在这他总是返回1,这函数是判断这里面的字符是不是一个定义了的函数名 
  3. echo date('Y-m-d H:i:s')."<br>";//默认时区的时间 
  4.  
  5. echo date_default_timezone_set("Etc/GMT")."<br>";//这是格林威治标准时间,得到的时间和默认时区是一样的 
  6. echo date('Y-m-d H:i:s')."<br>"
  7.  
  8. echo date_default_timezone_set("Etc/GMT+8")."<br>";//这里比林威治标准时间慢8小时 
  9. echo date('Y-m-d H:i:s')."<br>"
  10.  
  11. echo date_default_timezone_set("Etc/GMT-8")."<br>";//由上一个不能难想像,我们比那快8小时所以减8 
  12. echo date('Y-m-d H:i:s')."<br>"
  13.  
  14. echo date_default_timezone_set('PRC')."<br>"//设置中国时区 
  15. echo date('Y-m-d H:i:s')."<br>";//中国标准时间 
  16. ?> 

输出:

  1. 2009-05-15 02:20:42 //默认时区时间 
  2.  
  3. 2009-05-15 02:20:42 //("Etc/GMT") 格林威治标准时间 
  4.  
  5. 2009-05-14 18:20:42 //("Etc/GMT+8") 比林威治标准时间慢8小时 
  6.  
  7. 2009-05-15 10:20:42 //("Etc/GMT-8") 比林威治标准时间快8小时,是我们的北京时间 
  8.  
  9. 2009-05-15 10:20:42 //('PRC') 中国标准时间 

之前有一个遗留问题,就是echo date("y-m-d h:i:s",time())回来的时间总是与实际时间对不上,今天终于在网上找到了原因和解决方法,分享如下:

我补充一点,我按照下面提示的方法修改php.ini找不到date.timezone 这行,是不是就没办法了呢,当然不是啦,哈哈没有的话就自己加嘛,自己动手丰衣足食,我加了这样一句date.timezone = "PRC",问题就搞定了,高兴一下.

从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的

也就是显示的时间(无论用什么php命令)都是格林威治标准时间

和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。

1,最简单的方法就是不要用php5.1以上的版本

2,如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的上面加上 date_default_timezone_set (XXX);

cp无此问题

3,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加XXX,重启http服务(如apache2或iis等)即可

关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)

港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)

还有新加坡:Asia/Singapore

老外好像把北京漏调了

其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC

PRC是什么?PRC是中华人民共和国啊-_-

解决方式:

在页头使用date_default_timezone_set()设置我的默认时区为北京时间

date_default_timezone_set('PRC');

echo date('Y-m-d H:i:s');

时间和服务器当前时间一样了!!祝贺之

附date_default_timezone_set用法如下

--------------------------------

date_default_timezone_set

(PHP 5 >= 5.1.0RC1)

date_default_timezone_set -- 设定用于一个脚本中所有日期时间函数的默认时区

说明

bool date_default_timezone_set ( string timezone_identifier )

date_default_timezone_set() 设定用于所有日期时间函数的默认时区。

注: 自 PHP 5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息。

参数

timezone_identifier

时区标识符,例如 UTC 或 Europe/Lisbon

返回值

本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。

再附上时区标识符:

  1. CET 
  2. CST6CDT 
  3. Cuba 
  4. EET 
  5. Egypt 
  6. Eire 
  7. EST 
  8. EST5EDT 
  9. Etc/GMT 
  10. Etc/GMT+0 
  11. Etc/GMT+1 
  12. Etc/GMT+10 
  13. Etc/GMT+11 
  14. Etc/GMT+12 
  15. Etc/GMT+2 
  16. Etc/GMT+3 
  17. Etc/GMT+4 
  18. Etc/GMT+5 
  19. Etc/GMT+6 
  20. Etc/GMT+7 
  21. Etc/GMT+8 
  22. Etc/GMT+9 
  23. Etc/GMT-0 
  24. Etc/GMT-1 
  25. Etc/GMT-10 
  26. Etc/GMT-11 
  27. Etc/GMT-12 
  28. Etc/GMT-13 
  29. Etc/GMT-14 
  30. Etc/GMT-2 
  31. Etc/GMT-3 
  32. Etc/GMT-4 
  33. Etc/GMT-5 
  34. Etc/GMT-6 
  35. Etc/GMT-7 
  36. Etc/GMT-8 
  37. Etc/GMT-9 
  38. Etc/GMT0 
  39. Etc/Greenwich 
  40. Etc/UCT 
  41. Etc/Universal 
  42. Etc/UTC 
  43. Etc/Zulu 
  44. Factory 
  45. GB 
  46. GB-Eire 
  47. GMT 
  48. GMT+0 
  49. GMT-0 
  50. GMT0 
  51. Greenwich 
  52. Hongkong 
  53. HST 
  54. Iceland 
  55. Iran 
  56. Israel 
  57. Jamaica 
  58. Japan 
  59. Kwajalein 
  60. Libya 
  61. MET 
  62. MST 
  63. MST7MDT 
  64. Navajo 
  65. NZ 
  66. NZ-CHAT 
  67. Poland 
  68. Portugal 
  69. PRC 
  70. PST8PDT 
  71. ROC 
  72. ROK 
  73. Singapore 
  74. Turkey 
  75. UCT 
  76. Universal 
  77. UTC 
  78. W-SU 
  79. WET

Tags: date_default_timezone_set

分享到: