Ваш JSON недействителен.Почему?
См. Эти строки:
{
"title": "The Final Title",
"body": "In aliquam auctor ex quis consequat. Praesent non lobortis metus.",
"date": "2015-08-30"
},
]';
У вас есть дополнительный символ ',', который необходимо удалить, чтобы он был действительным массивом.
Должно быть:
{
"title": "The Final Title",
"body": "In aliquam auctor ex quis consequat. Praesent non lobortis metus.",
"date": "2015-08-30"
}
] ';
Ваш первый шаг с такой проблемой - это var_dump () или var_export () ожидаемой переменной.Выполнение этого с вашей переменной $ decode показало бы, что она была нулевой.
Существуют такие инструменты, как JSONLint , которые могут помочь вам в будущем с этими типами проблем, но в концедня, консоль chrome всегда хороша при работе с javascript.
Другие ошибки
В вашем коде есть ошибка, вместо ссылки на созданную вами переменнуюв цикле foreach вы пытаетесь сослаться на исходный массив объектов.
См .:
if ($decode->date < strtotime('-2 weeks')) {
Должно быть
if ($decoded->date < strtotime('-2 weeks')) {
Здесь ошибка PHP весьма полезна:
Попытка получить свойство 'date' не-объекта
Сразу же вы должны сосредоточиться на том факте, что ваш код ссылается на "не-объект""и вопрос, почему это может быть.