在项目中使用时间处理比较常用,个人项目中总结 /*获取今天开始日期和结束日期*/ public static function today(): array { $data['start'] = mktime(0, 0, 0, date('m'), date('d'), date('Y')); $data['end'] = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1; return $data; } /*获取昨天开始日期和结束日期*/ public static function yesterday(): array { $data['start'] = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); $data['end'] = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1; return $data; } /*获取本周开始日期和结束日期*/ public static function week(): array { $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y')); $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y')); return $data; } /*获取本月开始日期和结束日期*/ public static function month(): array { $data['start'] = mktime(0, 0, 0, date('m'), 1, date('Y'));; $data['end'] = mktime(23, 59, 59, date('m'), date('t'), date('Y')); return $data; } /*获取昨天的前一天开始日期和结束日期*/ public static function beforYesterday(): array { $data['start'] = mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')); $data['end'] = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')) - 1; return $data; } /*获取近期7天开始日期和结束日期*/ public static function nearSeven(): array { $data['start'] = strtotime(date("Y-m-d", strtotime("-7 day"))); $data['end'] = time(); return $data; } /*获取当月的第几天*/ public static function dataJ(): int { return date('j'); } /*获取今天开始日期和结束日期*/ public static function nearToday($day): array { $data['start'] = mktime(0, 0, 0, date('m'), date('d') - $day, date('Y')); $data['end'] = mktime(0, 0, 0, date('m'), date('d') + 1 - $day, date('Y')) - 1; return $data; } /*获取前一周开始日期和结束日期*/ public static function lastWeek(): array { //php获取上周起始时间戳和结束时间戳 $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1 - 7, date('Y')); $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7 - 7, date('Y')); return $data; } /*获取前三周开始日期和结束日期*/ public static function lastThreeWeek(): array { //php获取上三周起始时间戳和结束时间戳 $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1 - 21, date('Y')); $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 21 - 21, date('Y')); return $data; } /*获取近期某个月开始日期和结束日期*/ public static function nearMonth($month): array { $data['start'] = mktime(0, 0, 0, date('m') - $month, 1, date('Y'));; $data['end'] = mktime(23, 59, 59, date('m') - $month + 1, 00, date('Y')); //指定月份月末时间戳 return $data; } /*获取近期某个月开始日期和结束日期*/ public static function lastMonth(): array { $data['start'] = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));; $data['end'] = mktime(23, 59, 59, date('m'), 00, date('Y')); //指定月份月末时间戳 return $data; } /*获取近期某个月开始日期和结束日期*/ public static function lastThreeMonth(): array { $data['start'] = mktime(0, 0, 0, date('m') - 3, 1, date('Y'));; $data['end'] = mktime(23, 59, 59, date('m'), 00, date('Y')); //指定月份月末时间戳 return $data; } /*获取近三个月开始日期和结束日期*/ public static function threeMonth(): array { $data['start'] = strtotime("-0 year -3 month -1 day"); $data['end'] = time(); return $data; } /*获取近六个月开始日期和结束日期*/ public static function sixMonth(): array { $data['start'] = strtotime("-0 year -6 month -1 day"); $data['end'] = time(); return $data; } /*把时间数组转换成时间戳*/ public static function arrayTime($time = []): array { $data['start'] = strtotime($time[0] . ' 00:00:00'); $data['end'] = strtotime($time[1] . ' 23:59:59'); return $data; } /*几小时前*/ public static function tranTime($time) { $rtime = date("m-d H:i", $time); $htime = date("H:i", $time); $time = time() - $time; if ($time < 60) { $str = '刚刚'; } elseif ($time < 60 * 60) { $min = floor($time / 60); $str = $min . '分钟前'; } elseif ($time < 60 * 60 * 24) { $h = floor($time / (60 * 60)); $str = $h . '小时前 ' . $htime; } elseif ($time < 60 * 60 * 24 * 3) { $d = floor($time / (60 * 60 * 24)); if ($d == 1) $str = '昨天 ' . $rtime; else $str = '前天 ' . $rtime; } else { $str = $rtime; } return $str; }
06-08
660