Получение даты из базы данных SQL создает ошибку - PullRequest
0 голосов
/ 28 августа 2018

Я пытался получить дату калибровки из своей базы данных сервера 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')

Я получаю еще одну ошибку: Uncaught Error: вызов функции-члена format () для null

Я также сначала попытался преобразовать его в новый DateTime:

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

Тогда я получаю: Uncaught TypeError: DateTime :: __ construct () ожидает, что параметр 1 будет строкой, объект задан

Я не знаю, относится ли это к проблеме, но не во всех столбцах есть дата в этом столбце. Тип данных в базе данных - «дата», а формат - «Y-m-d». Как мне получить дату для отображения?

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

вы можете использовать функции php strtotime () и date () следующим образом:

date('Y-m-d H:i:s',strtotime(($row['calibrationDate']))."</td><td>".
0 голосов
/ 28 августа 2018

Если вы хотите получить типы даты и времени (datetime, date, time, datetime2 и datetimeoffset) в виде строк, вы должны установить для параметра подключения ReturnDatesAsStrings значение true.

$server = 'server\instance,port';
$cinfo = array(
    "ReturnDatesAsStrings"=>true,
    "Database"=>'database',
    "UID"=>"user",
    "PWD"=>"password"
);

Документация о sqlsrv_connect() вариантах подключения можно найти здесь .

0 голосов
/ 28 августа 2018

Вы должны использовать strtotime & дата функции

$calibrationDate= strtotime($row['calibrationDate']);
echo date('Y-m-d H:i:s', $calibrationDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...