Php 复杂的日期函数

Php Date Function with complexity

我的问题:如果日期是星期一,那么我的计时器应该从 8:30 am 开始,并且应该计算从 8:30 到指定日期的时差,在本例中是 2017-06- 02 14:20:00 第一个。所以时差应该是5小时50分钟。

第二种情况,创建日期为 2017-06-02 09:50:00,分配日期为:2017-06-03 13:20:00。所以它应该从 9:50 计算到 9:00pm 并再次从 8:30 开始计算到 13:20:00 (如果第二天是周一至周六。如果第二天是太阳,那么计时器应该计算从上午 11 点到 1:20pm。应该以小时和分钟为单位告诉我持续时间。

我该怎么做?它在 Php 和 MySQL 中。我不是任何框架或 CMS 系统。它的原生 php。

我的数据:

Date Created: 2017-06-02 02:50:00
Date Assigned: 2017-06-02 14:20:00

Date Created: 2017-06-02 09:50:00
Date Assigned: 2017-06-03 13:20:00

Mon - Sat   =   8:30am - 9:00pm
Sunday      =   11am - 5pm

提前致谢。

已编辑:此函数首先检查您指定的日期是哪一天,然后根据您的标准计算时差。

<?php 

    echo getTimeLapsedCustom('2017-06-02 14:20:00') . "<br>";
    echo getTimeLapsedCustom('2017-06-03 13:20:00') . "<br>";

    function getTimeLapsedCustom($time){
        $timecreated = '';
        $timeassigned = $time;
        $datetime2 = DateTime::createFromFormat('Y-m-d H:i:s', $timeassigned);

        if($datetime2->format('D') === 'Sun'){
            $timecreated = $datetime2->format('Y-m-d') . ' 11:00:00';
        }else{
            $timecreated = $datetime2->format('Y-m-d') . ' 08:30:00';
        }


        $datetime1 = DateTime::createFromFormat('Y-m-d H:i:s', $timecreated);

        $interval = $datetime1->diff($datetime2);
        return $interval->format('%h hours %i min');
    }

结果:

5 hours 50 min
4 hours 50 min