首页 > 解决方案 > 从 SQL 数据库获取日期会产生错误

问题描述

我一直在尝试从我的 SQL 服务器数据库中获取校准日期,但它似乎不起作用。

while($row = sqlsrv_fetch_array($result))  
{ 
$output .= "<tr><td>".$row['businessUnit']."</td><td>".
    $row['productGroup']."</td><td>".
    $row['deviceType']."</td><td>".
    $row['serialNumber']."</td><td>".    
    $row['location']."</td><td></td><td>".
    $row['condition']."</td><td>".
    $row['calibrationDate']."</td><td>".
    $row['itemDescription']."</td><td>
    <input type='checkbox'></input></td></tr>";  
}  
return $output;

如果我这样做,我会收到此错误:DateTime 类的对象无法转换为字符串

但是,当我尝试像这样格式化它时:

$row['calibrationDate']->format('Y-m-d')

我收到另一个错误:未捕获的错误:在 null 上调用成员函数 format()

我也尝试先将其转换为新的 DateTime:

$date = new DateTime($row['calibrationDate']);

然后我得到: Uncaught TypeError: DateTime::__construct() expects parameter 1 to be string, object given

我不知道它是否与问题有关,但并非所有列在该列中都有日期。数据库中的数据类型为“日期”,格式为“Ymd”。如何获取显示日期?

标签: phpsql-serverdatetime

解决方案


你应该使用strtotime & date函数

$calibrationDate= strtotime($row['calibrationDate']);
echo date('Y-m-d H:i:s', $calibrationDate);

推荐阅读