我们知道整个地球分为24个时区,每个时区都有自己的本地时间。同一时间,每个时区的本地时间相差1~23小时,在进行php开发的过程中,很多初学者很容易忽视的一个问题就是php时区的问题。以下是我在开始接触php的时候也犯过的一个错误,希望以后引以为戒,不在犯类似的错误了。
在做系统开发的时候,我们常遇到获取当前日期和时间,php与时间的处理也是整个开发过程中重要的一个环节,在php中通过date()函数来获取当前的日期和时间,date()函数的语法如:date(string format,int timestamp),其中timestamp可选,format参数指定日期格式,例如要输出2010-06-12则函数可这样写:date("Y-m-d")这样就可以获取当前日期,通过date("Y-m-d H:i:s")就可以得到形如这样的日期和时间格式:2012-6-12 13:25:20
以上便是获取当前日期和时间的常用函数格式。我当时也这样用了,但是获得的时间总是和我电脑系统的时间相当于北京时间相差8个小时左右。当时一直很纳闷,也没有找到程序那里写错了,仔细看了看觉得程序一定是没有问题的,最后我又翻了下书,看看了书上讲的时间函数那一章节,最后终于找到了问题的所在。原来是程序中没有设置时区,php默认的时区是格林威治时间,和北京时间相差8小时左右,然后我通过一个函数语句:date_default_timezone(Asia/Chongqing)设置了一下时区,然后再次用时间函数获取时间,结果一切正常,获取的时间和系统给的时间保持一致。
以上便是很多刚接触php的人员容易遇到的问题,现在阐述出来,以飨读者,同样我们在搞php的时候,对一些细节和一些常用的函数也要了解透彻,减少不必要的错误的发生。