【问题标题】:Compare h:ia time format string php - not working比较 h:ia 时间格式字符串 php - 不工作
【发布时间】:2017-12-22 05:57:25
【问题描述】:

例如,我的 tmp 数组是:

Array
(
    [checkin] => 11:00am
    [checkout] => 12:00pm
    [day_from] => 09:59am
    [day_to] => 06:00pm
)

我使用下面的代码来比较时间,但在这两种情况下,它总是显示“你好”,即使签入时间和结账时间都在日间和日间范围内。

实际上,这个功能是检查客人的入住和退房时间是否在营业时间的餐厅内?

任何帮助将不胜感激!在此先感谢:-)

$tmp_arr = array();
$tmp_arr['checkin'] = $checkin = date('h:ia',strtotime($checkin));
$tmp_arr['checkout'] = $checkout = date('h:ia',strtotime($checkout));
$tmp_arr['day_from'] = $day_from = date('h:ia',strtotime($day_from));
$tmp_arr['day_to'] = $day_to = date('h:ia',strtotime($day_to));
print_r($tmp_arr);
if($checkin>=$day_from && $checkin<=$day_to){
    echo "hi";
}
else{
    echo "hello";
}
if($checkout>=$day_from && $checkout<=$day_to){
    echo "hi";
}
else{
    echo "hello";
}

【问题讨论】:

    标签: php datetime datetime-format


    【解决方案1】:

    您应该使用 strtotime 将时间字符串转换为 unix 时间戳。然后你可以按照你预期的方式比较它们。

    $checkin = '11:00am';
    $checkout = '12:00pm';
    $day_from = '09:59am';
    $day_to = '06:00pm';
    
    $tmp_arr = array();
    $tmp_arr['checkin'] = $checkin = strtotime($checkin);
    $tmp_arr['checkout'] = $checkout = strtotime($checkout);
    $tmp_arr['day_from'] = $day_from = strtotime($day_from);
    $tmp_arr['day_to'] = $day_to = strtotime($day_to);
    print_r($tmp_arr);
    if($checkin>=$day_from && $checkin<=$day_to){
        echo "hi";
    }
    else{
        echo "hello";
    }
    if($checkout>=$day_from && $checkout<=$day_to){
        echo "hi";
    }
    else{
        echo "hello";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 2021-11-26
      相关资源
      最近更新 更多