Вот два способа, которые могут помочь решить проблему.
Первый (возможно, лучший) способ: изменить SQL-запрос.
Пусть Oracle выведет дату в другом формате, который strtotime
распознает. Если DATETIME является обычным столбцом типа даты в вашей базе данных, рассмотрите возможность использования функции Oracle TO_CHAR
для изменения ее выходного формата. Что-то вроде:
$sql = "SELECT TO_CHAR(DATETIME, 'YYYY-MM-DD HH24:MI:SS') AS DATETIME, CURRVALUE FROM DATEVALUE";
Второй способ: используйте strptime
.
Вместо использования strtotime
рассмотрите возможность использования strptime . Формат даты, который вы показываете в ваших комментариях, кажется близким к:
%d-%b-%y %H.%I.%S %p
Я не уверен, есть ли опция формата даты для миллисекундной части. Предполагая, что без него он будет правильно разбираться, изменив строку:
$date_2 = strtotime($agev);
до:
$date_2 = strptime($agev, '%d-%b-%y %H.%I.%S %p');
должен это сделать. Вы все равно получите ошибку, если мое предположение неверно.