2017-09-21 8 views
0

$work_in_daytime$work_in_nighttimeを計算するのに手助けが必要です。与えられた2つの時間に基づいて時間の長さを計算する

$nightStart = '22:00'; 
$nightEnd = '07:00'; 

$workers = array(
    '0' => array(
     'name' => 'Lyons', 
     'start' => '15:15', 
     'end' => '23:45' 
    ), 

    '1' => array(
     'name' => 'Santos', 
     'start' => '10:00', 
     'end' => '22:00' 
    ), 

    '2' => array(
     'name' => 'Montgomery', 
     'start' => '22:30', 
     'end' => '08:00' 
    ) 
); 


foreach ($workers as $worker) { 
    $length_of_work = abs(strtotime($worker['start']) - strtotime($worker['end']))/3600; 
    $work_in_daytime = ''; 
    $work_in_nighttime = ''; 
} 

ありがとうございました。

+0

誰かが「21:00」で働き始めたらどうなりますか?その場合、あなたの '$ nightStart = '22:00''は役に立ちません。 – RomanPerekhrest

+0

@RomanPerekhrest 21時に仕事を始めた人は、昼間に1時間追加されます($ work_in_daytime)。 – seoppc

答えて

0

開始時と終了時が夜間または夜間に及ぶ場合は、作業時間を別々の項目に分割する必要があります。 datetimeオブジェクトに変換し、dateintervalを使用して持続時間を取得しやすくすることをお勧めします。

+0

サンプルを投稿できますか? – seoppc

+0

いいえ、お手伝いしますが、残念ながらあなたのためにはできません。 – user3720435

0
<?php 
    $start_time = strtotime("2017-09-01 10:42:00"); 
    $end_time = strtotime("2017-09-02 10:21:00"); 
    //Divide seconds by 60 to get minutes or whatever is appropriate and round off 
    echo $difference = round(abs($to_time - $from_time)/60,2). " minutes"; 
?> 
関連する問題