了解一下时区
整个地球的时区总共划分为24个时区,它们是中时区(零时区)、东1-12区,西1-12区。在每个时区都有自己的本地时间,而且,在同一个时间,每个时区的本地时间会相差1-23个小时,不我们经常说的就是,我们中国这里是白天,而美国那里是夜晚。这就是时区的不同,形成的时间差。例如,英国伦敦的本地时间与我们中国北京的本地时间相差8个小时,在国际无线电通信领域,使用一个统一的时间,我们称为通用协调时间(Universal Time Coordinated)简称UTC,UTC与格林威治标准时间(Greenwich Mean Time ,简称GMT)相同,都与英国伦敦的本地时间相同。
怎么设置时区
在PHP5.0的时候,对date()函数进行了重写,所以,目前的时间日期比系统时间少8个小时,在PHP中,默认的时间是格林威治标准时间,也就是采用的是零时区,我们一般是根据北京时间来确定全国的时间,北京属于东八区,所以要获取本地当前时间必须更改PHP语言的时区设置。
在PHP中,有两种更改时区的方法:
第一种:
修改php.ini文件中的设置,找打[data]下的;date.timezone = 选项,去掉前面的引号,修改为:"date.timezone = Asia/Shanghai",然后重新启动Apache服务器
第二种:
在应用程序中,需在使用时间日期函数前添加以下函数
date_default_timezone_set(timezone);
参数timezone为PHP提供可识别的时区名称,如果时区名称无法识别,系统会采用UTC时区。在PHP手册中提供了各时区名称列表,其中,设置我国北京时间可以使用的时区包括PRC(中华人名共和国)、Asia/Chongqing(重庆)、Asia/Shanghai(上海)或者Asia/Urumqi(乌鲁木齐),这几个时区名称是等效的。
设置完成以后,date()函数就可以正常使用了,不会再有时间差的问题了。
看一下时区的例子
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "UTC时间:".date("Y-m-d H:i:s")."<br>"; date_default_timezone_set("PRC"); echo "北京时间:".date("Y-m-d H:i:s")."<br>"; ?>
运行的结果为:
如果将程序上传到空间中,那么对系统时区设置时,不能修改php.ini文件,只能使用date_default_timezone_set()函数对时区进行设置。
以上是PHP日期和时间函数之系统时区设置的详细内容。更多信息请关注PHP中文网其他相关文章!