复杂时间间隔签入 PHP

Complex time interval check in PHP

我有一个复杂的时间间隔检查正在努力解决。问题是:

我需要动态计算订单的取货时间。 从周一 10:01am 到周三上午 10 点的订单将在周五送达。从周三 10:01 到周五 10:00am 的订单将在下周一交付。 从周五 10:01am 到周一 10:00am 的订单将在 接下来的星期三。

我在 PHP 工作并使用 Carbon (http://carbon.nesbot.com/docs/),下单时间为 Carbon::now()

抱歉我之前的代码。我检查了一下,发现那里有几个缺陷。我已经重写了代码,这是适合您的完整且有效的解决方案。你可以看看条件来弄清楚我做了什么:

<?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";
    }