PHP Laravel如何判断当前时间处于19:00至次日04:00区间
Laravel 跨天时间区间判断实现方案
Laravel默认集成了Carbon日期处理库,直接基于Carbon实现即可,不需要额外安装依赖。
极简实现(精确到小时)
如果只需要精确到小时,用以下逻辑即可,核心是跨天区间可以拆分为「当日19点后」+「当日4点前」两个判断:
use Carbon\Carbon; function checkTimeRange(): bool { // 获取当前时间的小时数 $currentHour = Carbon::now()->hour; return $currentHour >= 19 || $currentHour <= 4; }
精确到分钟的实现
如果需要支持更灵活的时间配置(比如调整为19:30到次日04:30),用以下写法:
use Carbon\Carbon; function checkTimeRange(): bool { $night = "19:00"; $morning = "04:00"; $now = Carbon::now(); // 生成当日19点的时间实例 $start = Carbon::createFromTimeString($night); // 生成当日4点的时间实例 $end = Carbon::createFromTimeString($morning); // 当前时间大于等于当日19点,或者小于等于当日4点,都属于目标区间 return $now->gte($start) || $now->lte($end); }
调用上述方法时,符合时间区间就会返回true,否则返回false。
内容的提问来源于stack exchange,提问作者snouck.socmed
相关产品推荐
相关产品推荐

