Невозможно преобразовать объект DateTime в строку

Вопрос: Я пытаюсь создать дату (через 7 месяцев после этого) вот мой код $cdate = new DateTime("+7 months"); $cdate->modify("-" . ($cdate->format('j')-1) . " days"); $expiry_date= $cdate->format('Y-m-d'); $expiry_date = strtotime($expiry_date); который дает ошибку: PHP Catchable fatal error: Object of class DateTime could not be converted to string он работает, прежде чем... в чем проблема? Ответ №1

Вопрос:

Я пытаюсь создать дату (через 7 месяцев после этого) вот мой код

$cdate = new DateTime(«+7 months»); $cdate->modify(«-» . ($cdate->format(‘j’)-1) . » days»); $expiry_date= $cdate->format(‘Y-m-d’); $expiry_date = strtotime($expiry_date);

который дает ошибку:

PHP Catchable fatal error: Object of class DateTime could not be converted to string

он работает, прежде чем… в чем проблема?

Ответ №1

Класс DateTime не имеет магического метода __toString(), поэтому вы не можете использовать этот объект в качестве строки.

Вы должны использовать getTimestamp()

$cdate = new DateTime(«+7 months»); $expiry_date = $cdate->getTimestamp(); Ответ №2$cdate = new DateTime(+7 months); $cdate = $cdate->format(‘Y-m-d’);

Будет причиной того, что cdate будет строкой, если это то, что вы собираетесь делать.

Оцените статью
Добавить комментарий