`
LeeYee
  • 浏览: 70079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • PHP
 
阅读更多

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函数使用方法.docx

    PHP中strtotime函数使用方法.docx

    PHP中strtotime函数使用方法详解

    在PHP中有个叫做strtotime的函数。...返回2009年1月22日0点0分0秒时间戳 二,获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间 (1)打印明天此时的时间戳strtotime(

    Javascript模仿php中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')); ...

    PHP中strtotime函数使用方法分享

    1-22”) 示例如下: 1.echo strtotime(“2009-1-22”) 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间 ...

    PHP时间戳 strtotime()使用方法和技巧

    在php中我想要获取时间戳有多种方法,最常用的就是使用time函数与strtotime()函数把日期转换成时间戳了,下面我来给大家分享一下时间戳函数 strtotime用法。获取指定的年月日转化为时间戳:pHP时间戳函数获取指定...

    php使用date和strtotime函数输出指定日期的方法

    本文实例讲述了php使用date和strtotime函数输出指定日期的方法。分享给大家供大家参考。具体方法分析如下: 在php中date和strtotime函数都是对日期操作的,但是在生成上面date和strtotime是不一样的,一个是数字日期...

    PHP strtotime函数详解

    先看手册介绍: strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳 格式:int strtotime ( string $time [, int $now ] ) 本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳...

    深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复

    在某些参考资料中是说这两个方法任选其一就可,但经我测试,必须两个方法同时使用,才不会再出现错误提示

    php 深入理解strtotime函数的使用详解

    本篇文章是对php strtotime函数的使用进行了详细的分析介绍,需要的朋友参考下

    node-strtotime:节点StrToTime函数

    节点StrToTime函数。 这段代码是由从。 这是原始代码的简单分支,但主要区别在于未扩展Date.prototype范围。 例子 var strtotime = require('strtotime'); strtotime('1 week'); strtotime('next friday'); ...

    PHP使用strtotime计算两个给定日期之间天数的方法

    主要介绍了PHP使用strtotime计算两个给定日期之间天数的方法,实例分析了php操作时间的技巧,非常具有实用价值,需要的朋友可以参考下

    PHP strtotime函数用法、实现原理和源码分析

    主要介绍了PHP strtotime函数用法、实现原理和源码分析,本文讲解了strtotime函数的一些用法、strtotime函数的实现基本原理、strtotime(“-1 month”)求值失败的原因等内容,需要的朋友可以参考下

    php强大的时间转换函数strtotime

    使用strtotime可以将各种格式的时间字符串转换为时间戳 转换常规时间格式 echo date('Y-m-d H:i:s', strtotime('2016-01-30 18:00')).PHP_EOL; echo date('Y-m-d H:i:s', strtotime('20160130180001')).PHP_EOL; ...

    PHP使用strtotime获取上个月、下个月、本月的日期

    突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当时太困了吧,再看到有种毛骨悚然的感觉,本来是想再处理一下的,但是一想肯定还有什么超方便的方法,...

    php中strtotime函数性能分析

    strtotime()是php中的时间函数;其功能是:将任何字符串形式的日期,时间转换成对应的Unix 时间戳。今天我们是通过具体的实例来详细分析下strtotime()函数的性能问题

Global site tag (gtag.js) - Google Analytics