两个时间变量,判断第二次是否在第二天

时间:2020-12-27 18:46:27

标签: php datetime

我只得到一个日期和两次(24 小时制)。

有没有一种优雅的方法来确定第二次是否进入第二天?

伪代码:

$inputDate1 = "2020-12-27"
$inputHour1 = "21:00";

$inputHour2 = "00:10";
$calulatedDate2 = ???

$dateTime1 = $inputDate . " " . $inputHour1;
$dateTime2 = $calulatedDate2 . " " . $inputHour1;

其他示例:

08:00 和 12:00 将是同一日期。

08:00 和 07:59 将是下一个日期。

2 个答案:

答案 0 :(得分:2)

检查时间是否小于input1。

$inputDate1 = "2020-12-27";
$inputHour1 = "21:00";

$inputHour2 = "00:10";

if(strtotime($inputHour2) < strtotime($inputHour1)){
    $calulatedDate2 = date('Y-m-d', strtotime($inputDate1)+86400);
}else{
    $calulatedDate2 = $inputDate1;
}

$dateTime1 = $inputDate1 . " " . $inputHour1;
$dateTime2 = $calulatedDate2 . " " . $inputHour2;

Var_dump($dateTime1, $dateTime2);

https://3v4l.org/kH6CV

答案 1 :(得分:1)

我找到了一种方法。随意发布更优雅的解决方案。

$inputDate1 = "2020-12-27"
$inputHour1 = "21:00";

$inputHour2 = "00:10";
$inputDate2 = $inputDate1 //just assume for now

$dateTime1 = $inputDate1 . " " . $inputHour1;
$dateTime2 = $inputDate2 . " " . $inputHour1;

      
if (strtotime($dateTime2) < strtotime($dateTime1)) {
    $dateTime2 = (DateTime::createFromFormat('Y-m-d H:i', $dateTime2))->modify('+1 day')->format('Y-m-d H:i');
    }
相关问题