ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **简介** 时间转换函数也是我们在日常编码中常用的,即时是在强大的laravel中也有很多的时间处理类,我们在这里只是提供一些自己定义的时间处理函数。 1.计算距离现在的时间 ``` /** * 传入时间戳,计算距离现在的时间 * @param number $time 时间戳 * @return string 返回多少以前 */ function word_time($time) { $time = (int) substr($time, 0, 10); $int = time() - $time; $str = ''; if ($int <= 2){ $str = sprintf('刚刚', $int); }elseif ($int < 60){ $str = sprintf('%d秒前', $int); }elseif ($int < 3600){ $str = sprintf('%d分钟前', floor($int / 60)); }elseif ($int < 86400){ $str = sprintf('%d小时前', floor($int / 3600)); }elseif ($int < 1728000){ $str = sprintf('%d天前', floor($int / 86400)); }else{ $str = date('Y-m-d H:i:s', $time); } return $str; } ``` ``` /** * 传入时间戳,计算距离现在的时间 * @param number $the_time 时间戳 * @return string 返回多少以前 */ function formatTime($the_time) { $now_time = time(); $dur = $now_time - $the_time; if ($dur < 0) { return $the_time; } else { if ($dur < 60) { return $dur . '秒前'; } else { if ($dur < 3600) { return floor($dur / 60) . '分钟前'; } else { if ($dur < 86400) { return floor($dur / 3600) . '小时前'; } else {//昨天 //获取今天凌晨的时间戳 $day = strtotime(date('Y-m-d', time())); //获取昨天凌晨的时间戳 $pday = strtotime(date('Y-m-d', strtotime('-1 day'))); if ($the_time > $pday && $the_time < $day) {//是否昨天 return $t = '昨天 ' . date('H:i', $the_time); } else { if ($dur < 172800) { return floor($dur / 86400) . '天前'; } else { return date('Y-m-d H:i', $the_time); } } } } } } } ``` 2.获取指定日期段内每一天的日期get_date_from_range('2017-8-8','2018-9-9') ``` /** * 获取指定日期段内每一天的日期 * @param Date $startdate 开始日期 * @param Date $enddate 结束日期 * @return Array */ function get_date_from_range($startdate, $enddate) { $stimestamp = strtotime($startdate); $etimestamp = strtotime($enddate); // 计算日期段内有多少天 $days = ($etimestamp-$stimestamp)/86400+1; // 保存每天日期 $date = []; for($i=0; $i<$days; $i++) { $date[] = date('Y-m-d', $stimestamp+(86400*$i)); } return $date; } ``` 3.where语句查询是前端返回2018-12-20 13:56:00 - 2018-12-21 13:56:00 ``` function timeData($time){ $n = 0; for($i = 1;$i <= 3;$i++) { $n = strpos($time,'-',$n); $i != 3 && $n++; } $kaddtime=strtotime(trim(substr($time,0,$n))); $xaddtime=strtotime(trim(substr($time,$n+1))); $where = [['>',$kaddtime],['<',$xaddtime]]; return $where; } function timess($time){ $n = 0; for($i = 1;$i <= 3;$i++) { $n = strpos($time,'-',$n); $i != 3 && $n++; } $kaddtime=strtotime(trim(substr($time,0,$n))); $xaddtime=strtotime(trim(substr($time,$n+1))); return [$kaddtime,$xaddtime]; } ```