PHP时间戳判断大小问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP时间戳判断大小问题相关的知识,希望对你有一定的参考价值。

<?php
$xxsj=strtotime(date('Y-m-d H:i:s'));
$u_stoptime=strtotime("2014-9-26 21:10:10");
if($xxsj > $u_stoptime)
echo "123";
else
echo "321";


?>
昨天晚上我试了一下,$xxsj的时间是十点多的然后转换为时间戳,发现$u_stoptime的时间戳还比$xxsj的时间戳大 为什么?$xxsj的时间是十点多的 $u_stoptime的时间是九点多 两个时间根本不一样 为什么$u_stoptime的时间戳还比$xxsj的时间戳大?

参考技术A 造成这个原因的最大可能是你直接 date()取出来的是 UTC时间,不是北京时间(UTC+8)

解决办法是在你代码的源码顶部插入一行。
date_default_timezone_set("PRC");

详见我的日志
http://snmoney.blog.163.com/blog/static/44005820130282382206/

如果时间还是不准,还有一个可能是 服务器本身的时钟不准,你可以通过 date('H:i:s') 直接输出来判断。

另外..第一行为何要输出成 文本再转换回timestamp呢?感觉效率降低,可以直接替换成 time();本回答被提问者和网友采纳
参考技术B 可能你没有设置时区,默认为0时区,在中国要加8个小时的,你设置下吧

date_default_timezone_set('Asia/Shanghai');

以上是关于PHP时间戳判断大小问题的主要内容,如果未能解决你的问题,请参考以下文章

php之上传小案例,根据时间:月日分创建目录并随机生成文件名

php怎么判断当前时间在某个时间范围内

PHP 怎么判断两个时间戳是否在同一周

小程序时间戳转换日期问题

PHP 判断给定两个时间是否在同一周,月,年

PHP用strtotime()函数比较两个时间的大小实例详解