我一直在尝试从SQL Server数据库中获取校准日期,但是它似乎不起作用。
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']);
然后我得到:未捕获的TypeError:DateTime :: __ construct()期望参数1为字符串,给定对象
我不知道这是否与问题有关,但并非所有列都在该列中有日期。 数据库中的数据类型为“日期”,格式为“ Y-m-d”。如何获取要显示的日期?
答案 0 :(得分:0)
$calibrationDate= strtotime($row['calibrationDate']);
echo date('Y-m-d H:i:s', $calibrationDate);
答案 1 :(得分:0)
您可以像这样使用php strtotime()和date()函数
date('Y-m-d H:i:s',strtotime(($row['calibrationDate']))."</td><td>".
答案 2 :(得分:0)
如果要检索日期和时间类型(日期时间,日期,时间,日期时间2和日期时间偏移)作为字符串,则必须将连接选项ReturnDatesAsStrings
设置为true
。
$server = 'server\instance,port';
$cinfo = array(
"ReturnDatesAsStrings"=>true,
"Database"=>'database',
"UID"=>"user",
"PWD"=>"password"
);
有关sqlsrv_connect()
连接选项的文档可以在here中找到。