首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

strtotime步骤使用前请注意系统时区

2012-10-31 
strtotime方法使用前请注意系统时区strtotime在将一个潜在的时间字符串转换为正确的时间时,会使用到当前系

strtotime方法使用前请注意系统时区

strtotime在将一个潜在的时间字符串转换为正确的时间时,会使用到当前系统时区。如果系统时区与所给目标字符串所示时区不一样时,那么在调用后,其生成的时间将与想象中的时间有时间偏差。因此,需要在调用该方法前,首先确定当前系统时区。

?

我们可以调用date_default_timezone_get()获取当前时区。通常默认的时区为UTC也就是标准时区+0000;设置系统时区有两种方式:

1、修改php.ini配置文件。

[Date]
; Defines the default timezone used by the date functions
;date.timezone =

将上述部分的date.tiemzone放开,并设置为需要的时区

?

2、在需要设置时区的地方调用date_default_timezone_set()方法来设置时区。

?

下面我们就以"Sat May 14 22:35:44 +0800 2011"为例进行说明。我们的目标是获取其中的'22:35:44'时间。

?

可以看到'Sat May 14 22:35:44 +0800 2011'为+0800时区,也就是所谓的北京时间了。那么我们需要在strtotime该字符串前,确保系统时区为北京时区。PHP中北京时区可以用PRC表示。如果是PHP5+也可用Asia/Shanghai或者Asia/Chongqing来设置。

?

这里我们采用第二种方式来设置系统时区。我们的测试代码如下:

显示结果如下:

?

未设定时区前时间字符串Sat May 14 22:35:44 +0800 2011当前时区UTC字符转化后日期格式('r')Sat, 14 May 2011 14:35:44 +0000字符转化后日期格式('H:i:s')14:35:44

?

设定时区后时间字符串Sat May 14 22:35:44 +0800 2011当前时区Asia/Shanghai字符转化后日期格式('r')Sat, 14 May 2011 22:35:44 +0800字符转化后日期格式('H:i:s')22:35:44

注意:在使用第二种方式时,在使用完成后,应将系统时区还原到初始设置。避免后续调用错误。

?

PS: 其他的时区设置及代码中涉及到的方法,可以通过查看PHP API了解更多的用法。http://www.php.net/manual/zh/index.php

热点排行