You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将多时间段数组处理为最早开始到最晚结束的营业时间字符串?

PHP代码修改方案

你当前的需求是将多段营业时间合并为「最早开始时间-最晚结束时间」的整体格式,修改后的代码如下:

// 兼容无营业时间的场景
if (empty($ranges)) {
    return __('今日营业时间:暂不营业', 'example');
}

// 提取所有时段的开始、结束时间,取极值
$startTimes = array_column($ranges, 'from');
$endTimes = array_column($ranges, 'to');
$earliestStart = min($startTimes);
$latestEnd = max($endTimes);

// 格式化时间并拼接
$businessHours = $this->format_time($earliestStart) . ' - ' . $this->format_time($latestEnd);

// 输出符合要求的格式
return sprintf(
    '%s%s。',
    __('今日营业时间:', 'example'),
    $businessHours
);

修改说明

  • 移除了原代码中生成所有时段字符串的array_map逻辑,改用array_column批量提取所有时段的开始、结束时间
  • 通过min()和max()函数分别获取全天最早的开门时间、最晚的打烊时间,直接拼接为完整营业时间
  • 调整了输出模板,匹配你需要的「今日营业时间:x:x - x:x。」的格式,外层你可以直接用<p>标签包裹最终返回值即可
  • 新增了空营业时间的兼容逻辑,避免数组为空时报错
  • 原代码开头冗余的$start、$end变量定义可以直接删除

内容的提问来源于stack exchange,提问作者sukkie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:27:07