我对将日期和时间存储在表中的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):在数据库中找不到时区“”
答案 0 :(得分:1)
此行:
$target = new DateTime($query);
应为:
$target = new DateTime($row['matchTime']);