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
分享到:
相关推荐
在PHP编程语言中,strtotime()函数是一个非常实用的工具,它能够将人类可读的英文日期或时间描述转换为Unix时间戳。...理解并熟练使用strtotime()函数,将极大地提高编写日期和时间相关代码的效率。
开发者在使用strtotime()函数和其他与日期时间相关的函数时,需要明确设置时区,以避免警告信息的产生。这是因为依赖系统默认时区设置被认为是不安全的做法,特别是在运行在不同服务器上时可能会导致时间计算错误。 ...
document.write(strtotime('now')); document.write(strtotime('next Sunday')); document.write(strtotime('last month')); document.write(strtotime('+1 weeks')); document.write(strtotime('+1 WEEK')); ...
- **明天此时**: 使用`strtotime("+1 day")`可以获取当前时间的明天对应的Unix时间戳,然后通过`date()`函数将其转换回系统日期时间格式。 - **昨天此时**: 类似地,`strtotime("-1 day")`则表示昨天同一时刻的...
在php中我想要获取时间戳有多种方法,最常用的就是使用time函数与strtotime()函数把日期转换成时间戳了,下面我来给大家分享一下时间戳函数 strtotime用法。获取指定的年月日转化为时间戳:pHP时间戳函数获取指定...
使用`strtotime()`函数可以轻松获取指定日期的Unix时间戳。例如,以下代码将获取2009年1月22日的Unix时间戳: ```php echo strtotime("2009-1-22"); ``` 这将输出:`1232553600`,对应于2009年1月22日0点0分0秒的...
本文实例讲述了php使用date和strtotime函数输出指定日期的方法。分享给大家供大家参考。具体方法分析如下: 在php中date和strtotime函数都是对日期操作的,但是在生成上面date和strtotime是不一样的,一个是数字日期...
如果系统有设置时区(通过TZ环境变量),strtotime会将时间戳转换为时区相应的本地时间。 - 在PHP 5.1.0之后的版本,如果strtotime函数执行失败会返回FALSE,而在5.1.0之前的版本会返回-1。 - 在PHP 5.0及以后的版本...
`strtotime()` 在实际开发中常用于动态计算日期,比如生成报表、预约系统、日程安排等。结合 `date()` 函数,可以生成符合各种需求的日期时间格式。 理解并熟练运用 `strtotime()` 函数,可以有效地处理复杂的日期...
需要注意的是,`strtotime`函数对日期格式的解析相当宽容,可以处理多种不同的日期表示方式,如'YYYY-MM-DD'、'MM/DD/YYYY'、'DD-MM-YYYY'等,甚至可以解析包含时间的部分,如'YYYY-MM-DD HH:MM:SS'。但并不是所有非...
例如,如果我们想获取从今天起一个月后的Unix时间戳,可以这样使用strtotime函数: ```php $timeStamp = strtotime("now +1 month"); ``` 这里的字符串参数 `"now +1 month"` 就是描述我们要计算的未来时间。在PHP中...
节点StrToTime函数。 这段代码是由从。 这是原始代码的简单分支,但主要区别在于未扩展Date.prototype范围。 例子 var strtotime = require('strtotime'); strtotime('1 week'); strtotime('next friday'); ...
在PHP中,`strtotime()`函数是一个...总的来说,`strtotime()`在小规模或非性能敏感的场景下是很好的选择,但在处理大规模数据时,应谨慎使用,考虑使用更高效的比较方式或者优化数据处理流程,以提高整体系统的性能。