Формат даты json php

Мне нужно отформатировать дату и время в более удобочитаемом формате, например, в формате, например: - '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 в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
2 966
3

Ответы 3

Вы можете использовать функцию Дата() в php

print_r (date('jS  F Y h:i', strtotime("2017-08-02T14:15:00")));

Это точно ответ в дубликате.

hungrykoala 22.05.2018 06:46

Спасибо, это указывало мне в правильном направлении и помогло мне исправить эту проблему.

Rich 22.05.2018 12:28

Вместо этого я использовал обозначение «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. Но я думаю, что это будет лишь незначительная корректировка. По любым вопросам вы, конечно, можете оставить комментарий.

Другие вопросы по теме