Как рассчитать разницу во времени с графиком, работающим с двумя марками времени?

Вот сценарий, в котором у меня есть таблица задач start_time и end_time например: On start method i note start_time и On pause / in review / done i note end_time вот моя таблица

 ID | task_id | start_time | end_time ----------------------------------------------------------------- 1 1 2017-03-02 06:27:28 2017-03-12 10:43:37 2 5 2017-03-02 07:16:05 NULL//in progress no end time 

например, меняются часы от 6 до 10 и рабочие дни на неделе. Я хочу рассчитать точное время в часы работы в рабочие дни . Я много искал, чтобы найти ответ, пожалуйста, помогите мне с правильным методом расчета.

Примечание: где end_time имеет значение NULL, я использую date() означает текущую дату

Демо-версия PHP

 <?php $datetime1 = new DateTime('2017-03-02 06:27:28'); if($datetime1->format("D")!="Sun" && $datetime1->format("D")!="Sat") { $datetime2 = new DateTime('2017-03-12 10:43:37'); $interval = $datetime1->diff($datetime2); echo $interval->format('%H:%I:%s'); }