Дали мне вести проект, а там дата работает через библиотеку DateTime (php). Стоит такой механизм - если дата через гет передается, то объект даты формируется из нее, иначе - дата - текущий день.
$date = $request->getParam('date');
if (!empty($date)) {
$date = DateTime::createFromFormat('Y-m-d', $date);
} else {
$date = new DateTime;
}
Вроде все нормально работает, проблем нет. Но нужно мне проверять записи предыдущего дня. То есть, если в ГЕТ дата не передана, то записи за вчера, а если переданы - то записи за день до той даты, что передана. Прочитал как это делается, самое простое вот так:
$my_date = strtotime($date->date);
$my_date = strtotime('-1 day', $my_date);
$my_date = date('Y-m-d', $my_date);
Где $date - объект данных, сформированный выше, результат выглядит так:
DateTime Object ( [date] => 2018-04-01 15:30:00.000000 [timezone_type] => 3 [timezone] => Asia/Omsk )
И вроде все должно работать, но вот что интересно. Если я указываю как указал, результат получается такой:
1969-12-31
Но! Если перед этим кодом я напишу вывод объекта с датой, то ЧУДО, результат как мне нужен:
2018-03-31
что за чудеса? И как это решить? Спасибо