亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

輸入多個時間范圍然后返回所有另一個時間范圍

輸入多個時間范圍然后返回所有另一個時間范圍

PHP
aluckdog 2022-01-02 19:58:17
我正在尋找一個解決方案,當我輸入一個時間范圍(或多個時間范圍)作為數組時,它將返回除我輸入的時間范圍之外的所有其他時間范圍。例如:我輸入[ 0 => ['start' => '8:30:00', 'end' => '9:00:00'], 1 => ['start' => '11:30:00', 'end' => '12:30:00']](8:30:00 - 9:00:00), (11:30:00 - 12:30:00)我一直想從8:00:00到收到17:00:00我希望它返回的預期輸出是:[ 0 => ['start' => '8:00:00', 'end' => '8:30:00'], 1 => ['start' => '09:00:00', 'end' => '11:30:00'], 2 => ['start' => '12:30:00', 'end' => '17:00:00']](8:00:00 - 8:30:00), (09:00:00 - 11:30:00), (12:30:00 - 17:00:00)謝謝你。
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

您可以簡單地使用這個概念。您不需要使用任何日期時間庫或任何其他概念。只需使用 for 循環即可正常工作。


<?php

$startingTime = '8:00:00';

$endingTime = '1:00:00';

$time = [ ['start' => '8:30:00', 'end' => '9:00:00'],

             ['start' => '11:30:00', 'end' => '12:30:00']];

$output = [];

for ($x = 0; $x <= count($time); $x++) {

    $t = $time[$x];

    $interval = [];

    $interval['start'] = $startingTime;

    $interval['end'] = ($t['start']=== NULL? $endingTime: $t['start'] );

    array_push($output,$interval);

    $startingTime = $t['end'];

}


print_r($output);

http://img1.sycdn.imooc.com//61d1937700015d5e08830217.jpg

查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 194 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號