【发布时间】:2019-03-29 10:10:25
【问题描述】:
我需要计算给定开始日期的结束日期/SLA,考虑到工作时间/工作日内的完成时间(以分钟为单位)。
例如:
- 开始日期 = 2019-03-29 15:00:00
- 完成时间 = 720(分钟)
考虑到每天 8 小时的工作时间(上午 9 点到下午 5 点)和周日的周末。结束日期应为 2019-04-01 11:00:00。
所以总小时数是 12,
- 2019-03-29 15:00:00 至 17:00:00(2 小时)
- 2019-03-30 09:00:00 至 17:00:00(8 小时)
- 2019 年 4 月 1 日 09:00:00 至 11:00:00(2 小时)
任何有关这方面的帮助将不胜感激。
到目前为止,我可以获得不包括周末的总工作日,但获得准确的结束时间是我苦苦挣扎的地方。
谢谢。
更新:
$bookingDateTime = Carbon::parse('2019-03-29 15:00:00');
$i = 0;
$completion_in_days = (720/60)/8; //converted minutes in no of days
$working_days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
while($i < ($completion_in_days)){
if(array_search(strtolower($bookingDateTime->englishDayOfWeek), $working_days) !== false){
$i++;
}
$bookingDateTime->addDay();
}
这会给我结束日期。
【问题讨论】:
-
这句话错了
on 2019-04-01 from 09:00:00 to 10:00:00 (2 hours)应该是11:00:00 -
@RahulMeshram 谢谢哥们,在你的帮助下,我找到了解决方案。
-
太棒了!如果您觉得我的回答可以帮助您解决问题,您可以接受我的回答。快乐编码!