Я широко использую googled, видел различные решения stackoverflow, но никто не работает здесь. Не знаю, почему. Помогите было бы здорово!
Дата хранится в поле smalldatetime в MSSQL. Значение этого можно рассматривать как "2015-11-27 00:00:00". Это похоже на формат даты в mySQL. Пример ниже работает, если значение вставлено, но не значение из набора записей.
//gives correct result, 11/27/2015
$TravDate = date("m/d/Y", strtotime("2015-11-27 00:00:00"));
//gives wrong result, 12/31/1969
$TravDate = date("m/d/Y", strtotime($obj->TravDate));
Пожалуйста попробуйте
$datetime = new DateTime( $obj->travdate); //create datetime object with received data
$reform = $datetime->format('Y M d'); //do reformat as required
См. Http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/
Решение найдено. Я отказался от использования метода PHP выше: он работал для всех других переменных в наборе записей, кроме поля даты TravDate, которое не равно null.
Решение включало изменение SQL-запроса путем преобразования поля даты следующим образом: - CONVERT (varchar (10), TravDate, 20) AS TravDate (php echo, дающий 11/27/2015). Это решение найдено в qaru.site/questions/29520/....
Убедитесь, что $obj-> TravDate сериализован в строку правильно, вероятно, решение неверно. Попробуйте сначала выполнить строчку и после использования функции strtotime().