从php中的mysql数据库检索Datetime对象

时间:2018-07-27 22:09:40

标签: php mysql datetime

我对将日期和时间存储在表中的mysql Datetime格式存在特定问题,因此我将值存储在表中,现在我想检索这些值,然后将该时间与当前datetime进行比较,出了错。 这是我到目前为止尝试过的。

<?php
    date_default_timezone_set('Asia/Calcutta');
    require_once('connect.php');

    $query="select matchTime from fixture_list where value1='Mumbai'";
    if($result= mysqli_query($con,$query)){
        while($row=mysqli_fetch_assoc($result)){
            print_r($row);
        }
        mysqli_free_result($result);
    }

    //$target = new DateTime('2018-07-27 01:00:00');
    $target = new DateTime($query);
    $now = new DateTime;
    $diff = $target->diff($now);

    if ($target > $now) {
        echo $diff->format('%a days, %h hours, %i minutes to go');
    } 
    else {
        echo $diff->format('%a days, %h hours, %i minutes too late');
    }
?>

我唯一的目的是获取可能已存储在数据库中的字符串中的datetime值,并将其传递给$ target变量,然后与$ now比较,这是我得到“ Array([matchTime] = > 2018-07-27 00:00:00)数组([matchTime] => 2018-07-27 00:00:00)数组([matchTime] => 2018-07-28 01:00:00) 致命错误:消息为'DateTime :: __ construct()的未捕获异常'Exception':无法解析位置0(s)处的时间字符串(从夹具列表中选择matchTime):在数据库中找不到时区“”

1 个答案:

答案 0 :(得分:1)

此行:

$target = new DateTime($query);

应为:

$target = new DateTime($row['matchTime']);