php strtotime 8小时,php时间函数strtotime的深入理解

本节内容:

php时间函数strtotime

先来看下php官方手册中对strtotime的描述:

strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。

也就是说,此函数可以把2010-02-28 18:31:33转换为1267353093这种格式。

在做时间戳转换时,请注意服务器的date.timezone的配置。

在strtotime函数说明中有这么一段话:

该函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。

此过程在 date_default_timezone_get()  函数页面中有说明。

可以这么理解:

如果date.timezone配置为空或者为UTC(格林威治时间),那么它就会直接把传入的时间直接转换为该时间的UNIX时间戳(相当于该时间识别为格林威治时间)

如果date.timezone配置了时区,例如Asia/Shanghai,那么这个函数就会将传入的时间认为是配置的时区的当地时间,然后根据该时区与UTC(格林威治时间)的时差来算格林威治时间的时间戳。

例如:

php.ini配置date.timezone为Asia/Shanghai;

传入:2010-02-28 18:31:33

函数转出的时间戳的实际时间为:

2010-02-28 10:31:33

因为Asia/Shanghai位于 +8区,那么函数会自动减去了8个钟头的时间来得到格林威治时间。

分享一段测试代码,供大家参考。

例子:

复制代码 代码示例:

echo '2010-02-28 00:00:00';

echo '
';

// 格林威治时间 0

date_default_timezone_set('UTC');

echo gmdate('Y-m-d H:i:s', strtotime('2010-02-28 00:00:00'));

echo '
'; // www.jbxue.com

// 中国上海时间 + 8

date_default_timezone_set('Asia/Shanghai');

echo gmdate('Y-m-d H:i:s', strtotime('2010-02-28 00:00:00'));

echo '
';

// 美国洛杉矶时间 - 8

date_default_timezone_set('America/Los_Angeles');

echo gmdate('Y-m-d H:i:s', strtotime('2010-02-28 00:00:00'));

echo '
';

输出结果:

2010-02-28 00:00:00

2010-02-28 00:00:00

2010-02-27 16:00:00

2010-02-28 08:00:00

您可能感兴趣的文章:

php取得某段时间区间的时间戳的代码

php中的UNIX时间戳函数strtotime

php 时间戳函数总结与示例

php 当前时间、时间戳的获取方法汇总

php时间戳函数 strtotime 应用实例

php时间戳应用举例

php时间转换Unix时间戳的代码

php应用mktime获取时间戳的例子分析

学习php中时间戳和日期格式的转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值