如何将我的DateTime对象与设置的时间间隔进行比较,然后将其拆分

时间:2018-03-20 13:16:22

标签: php datetime

我从数据库获得了一个DateTime对象。此对象表示用户在特定日期登录的时间。我需要:

1)检查这个时间是在晚上10点/早上6点之后开始,还是在晚上10点/下午6点之后结束,换句话说,如果这个工作时间是在晚上10点到早上6点之间。

2)如果是,那么我需要将初始DateTime对象拆分为2个或更多对象,这些对象将包含在晚上10点到6点之间花费的所有时间间隔的信息。

我使用 - >格式(" H")&amp ;; - >格式化(" i")并比较整数,但它看起来并不漂亮。所以我很奇怪是否有可能以其他方式做到这一点,可能使用DateTime / DateInterval /其他类似的对象方法? 我试过这样做:

    $login=new DateTime($row['login']);
    $logout=new DateTime($row['logout']);
    $startNightTime=strtotime("22:00:00");
    $endNightTime=strtotime("06:00");
    if(($login->format("Hi")>$startNightTime || $login->format("Hi")<$endNightTime)||($logout->format("Hi")>$startNightTime || $logout->format("Hi")<$endNightTime)){
       /*some code here*/
    }

当然它没有用,因为我比较完整的日期,例如2018-03-20 05:00仅限06:00。所以我似乎应该创建另一个DateTime对象,其日期与初始日期相同,但时间为晚上10点/早上6点,对吧?或者还有其他更优雅的方式吗? 提前谢谢。

0 个答案:

没有答案