我的问题:如果日期是星期一,那么我的计时器应该从早上8:30开始,并且应该计算从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点再计算,并且从8点30分到13点20分再次开始(如果第二天是星期一。如果第二天是太阳,那么计时器应该从上午11点到下午1:20计算并且应该给我持续时间和小时数。
我该怎么做?它在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
提前谢谢。
答案 0 :(得分:0)
已编辑:此功能首先检查您的日期分配日期,然后根据您的条件计算时差。
<?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