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
我的问题:如果日期是星期一,那么我的计时器应该从 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