Мне нужно отформатировать дату и время в более удобочитаемом формате, например, в формате, например: - '23 сентября 2018 г. 17.00'
//Json Array
instances": [
{
"start": "2017-08-02T14:15:00"
}
]
//CODE
$count = count($characters->instances);
for(reset($i); $i < $count; ++$i) {
print_r ($characters->instances[$i]->start);
}






Вы можете использовать функцию Дата() в php
print_r (date('jS F Y h:i', strtotime("2017-08-02T14:15:00")));
Это точно ответ в дубликате.
Спасибо, это указывало мне в правильном направлении и помогло мне исправить эту проблему.
Вместо этого я использовал обозначение «Square Bracket» и echo вместо print_r, который работал с strtotime, просто настроив json_decode на true.
Это сработало!
Окончательный рабочий код
$characters = json_decode($data, true);
echo (date('jS F Y h:i', strtotime($characters['instances'][$i]['start'])));
Во-первых, давайте преобразуем ваш JSON в массив.
// The 'true' parameter will convert your
// json to an array instead of an object
$characters = json_decode($json, true);
Теперь давайте переберем ваш массив, чтобы найти и заменить даты.
foreach ($characters['instances'] as $instanceKey => $instance) {
foreach ($instance as $key => $value) {
// Add all keys you'd like to change to the below array
if (in_array($key, ['start', 'end', 'date'])) {
$oDate = DateTime::createFromFormat('Y-m-dTH:i:s', $value);
// You can adjust the date format to any format you wish
// in the below format() portion
$characters['instances'][$instanceKey][$key] = $oDate->format('jS F Y h:i');
}
}
}
Теперь давайте вернем его в строку JSON:
$json = json_encode($characters);
Возможно, я ошибся в вашей структуре JSON. Но я думаю, что это будет лишь незначительная корректировка. По любым вопросам вы, конечно, можете оставить комментарий.