首页 > 解决方案 > 减法时间逻辑 - PHP

问题描述

我想显示 2 次之间的时间段。开始时间和结束时间。使用下面的代码,它工作正常。它循环开始和结束时间,并增加 30 分钟的时间。从下午 2:00、下午 2:30、下午 3:00 开始,一直到晚上 10:00

$start_time =  "14:00:00";
$end_time =  "22:30:00";

@for ($i = strtotime($start_time); $i < strtotime($end_time); $i=$i+1800)
  <li data-time="{{date('g:i A', $i)}}" class="timefield">{{date("g:i A", $i)}}</li>
@endfor

我坚持的是两部分

标签: php

解决方案


您可以像这样在逻辑中插入当前时间戳:

$start_time =  strtotime("14:00:00");
$end_time =  strtotime("22:30:00");
    
$now = (new DateTime())->getTimestamp();
$nowRemaining = $now % 1800; // Divide to half hours & get the remaining seconds
$nowRounded = $now - $nowRemaining; // Round to half hours
$nextHour = $nowRounded + ($nowRemaining == 0 ? 3600 : 5400); // Add the extra buffer
    
for ($i = max($start_time, $nextHour); $i < $end_time; $i=$i+1800) {
  ...
}

推荐阅读