php – 相对日期格式总是输出“3小时前”
发布时间:2020-12-13 22:02:33 所属栏目:PHP教程 来源:网络整理
导读:我正在使用php计算指定日期和当前日期之间的日期间隔.我这样做,所以我可以打印社会友好的时间戳,如几分钟前和2小时前 当我来到小时部分时,我得到的东西在php中表现得非常有趣.下面是完整的工作代码,但当您使用此代码替换小时部分时,它总是打印出3个小时. 定
我正在使用php计算指定日期和当前日期之间的日期间隔.我这样做,所以我可以打印社会友好的时间戳,如几分钟前和2小时前
当我来到小时部分时,我得到的东西在php中表现得非常有趣.下面是完整的工作代码,但当您使用此代码替换小时部分时,它总是打印出3个小时. 定义常数DATE // The current date timestamp define('DATE',time()); Buggy代码在这里: //Only the hours part that' doing something weird case ($interval >= 3600 && $interval < 86400) : $return = ( date('H',$interval) < 2) ? (int)date('H',$interval) . ' hour ago' : (int)date('H',$interval) . ' hours ago'; break; 它在指定的日期时断开,假设在这种情况下,创建日期只是一个多小时前因此导致间隔等于3660秒.似乎日期方法调用日期(‘H’,3660)导致03.它不应该导致01吗?毕竟只需一个多小时. 这里的工作代码: public static function getTimeInterval($date) { $interval = DATE - $date; $return = ''; switch ( $interval ) { case ($interval <= 60) : $return = 'a few secs ago'; break; case ($interval > 60 && $interval < 3600) : $return = (int)date('i',$interval) . ' mins ago'; break; case ($interval >= 3600 && $interval < 86400) : $return = ( abs((date('G',DATE) - date('G',$date))) < 2) ? abs((date('G',$date))) . ' hour ago' : abs((date('G',$date))) . ' hours ago'; break; case ($interval >= 86400 && $interval < 604800) : $return = ( (int)date('j',$interval) === 1) ? (int)date('j',$interval) . ' day ago' : (int)date('j',$interval) . ' days ago'; break; case ($interval > 604800 && $interval <= 2592000) : $return = 'A few weeks ago'; break; case ($interval > 2592000) : $return = date('n',$interval) . ' months ago'; break; case ($interval > 31536000) : $return = 'Over a year ago'; break; } return $return; } 解决方法
date()的结果取决于您的时区.您可以通过date_default_timezone_set()手动设置时区来更改此行为
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- php – Symfony2捆绑包与兼容PSR-0的第三方库有什么区别?
- php 提示Warning: mysql_fetch_array() expects
- Unable to guess the mime type as no guessers are availa
- php – 使用CURL发送自定义标题
- php – Zend Framework快速入门模型构造函数
- PHP中require和include路径问题详解
- php中有关字符串的4个函数substr、strrchr、strstr、ereg介
- 利用switch语句进行多选一判断的实例代码
- PHP中OpenSSL加密问题整理
- phpMyAdmin链接MySql错误 个人解决方案