我有一个复杂的时间间隔检查,我正努力解决。这是问题所在:
我需要动态计算订单的取货时间。 周一上午10:01至周三上午10点的订单将于周五发货。周日10:01至周五上午10:00的订单将在下周一发货。 从星期五上午10点01分到星期一上午10点的订单将被送达 星期三之后。
我在PHP工作并使用Carbon(http://carbon.nesbot.com/docs/),订单放置时间为Carbon :: now()
答案 0 :(得分:0)
对不起我之前的代码。我查了一下,发现了几个漏洞。我已经重写了代码,这里是完整且有效的解决方案。您可以查看条件,找出我所做的事情:
<?php
date_default_timezone_set('Asia/Karachi'); // set default timezone if needed
$time = new DateTime();
$day = $time->format('l');
$IntervalA = new DateTime('10:01');
$IntervalB = new DateTime('10:00');
// for friday delivery
if(in_array($day, array('Monday', 'Tuesday')) AND $time >= $IntervalA OR in_array($day, array('Wednesday')) AND $time <= $IntervalB) {
echo "The product will be delivered on Friday";
}
// for monday delivery
if(in_array($day, array('Wednesday', 'Thursday')) AND $time >= $IntervalA OR in_array($day, array('Friday')) AND $time <= $IntervalB) {
echo "The product will be delivered on Monday";
}
// for wednesday delivery
if(in_array($day, array('Friday', 'Saturday', 'Sunday')) AND $time >= $IntervalA OR in_array($day, array('Monday')) AND $time <= $IntervalB) {
echo "The product will be delivered on Wednesday";
}