我从数据库获得了一个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点,对吧?或者还有其他更优雅的方式吗? 提前谢谢。