За последние 24 часа нас посетили 24606 программистов и 1695 роботов. Сейчас ищут 810 программистов ...

Обработать дату

Тема в разделе "PHP для новичков", создана пользователем q0b3rMAN, 22 окт 2018.

  1. q0b3rMAN

    q0b3rMAN Активный пользователь

    С нами с:
    11 июн 2011
    Сообщения:
    142
    Симпатии:
    0
    Всем привет.
    Подскажите пожалуйста, у меня с JSON запроса приходит ответ, это дата и время, в таком формате:
    Код (Text):
    1.  2018-10-23T13:30:00.000Z
    Я принимаю ответ в PHP. Как мне лучше разбить это все дело? Надежно, чтобы не было проблем когда придут например все нули, заместо времени.... Может быть есть какая та функция?
    Заранее спасибо!
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Для чего разбивать, если у вас дата в нормальном формате. Хотите изменить формат? DateTime::format
    --- Добавлено ---
    Первый раз слышу про "JSON запрос". Да уж... технологии не стоят на месте ;)
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    PHP:
    1. <?php
    2. // Без всяких заморочек
    3. echo date('d.m.Y', strtotime('2018-10-23T13:30:00.000Z')); // 23.10.2018
    4.  
    5. // С использованием класса DateTime
    6. $date = new \DateTime('2018-10-23T13:30:00.000Z');
    7. echo $date->format('d.m.Y H:i'); // 23.10.2018 13:30
    8. echo $date->format('d.m.Y'); // 23.10.2018
    9. echo $date->format('d F Y'); // 23 October 2018
    10. echo $date->format('l, d M Y'); // Tuesday, 23 Oct 2018
    11.  
    12. // Вариант с учетом локали. Поддержка склонения названий месяцев
    13. // Напр., тут "октября", вместо "Октябрь" в примере ниже
    14. $date = new \DateTime('2018-10-23T13:30:00.000Z');
    15. $fmt = new \IntlDateFormatter(
    16.     'ru_Ru',
    17.     \IntlDateFormatter::FULL,
    18.     \IntlDateFormatter::FULL,
    19.     'Europe/Moscow',
    20.     \IntlDateFormatter::GREGORIAN,
    21.     'EEEE, dd MMMM YYYY'
    22. );
    23. echo $fmt->format($date); // вторник, 23 октября 2018
    24.  
    25. // Простой вариант с поддержкой локали
    26. setlocale(LC_TIME, 'ru_RU.UTF-8');
    27. echo strftime('%A, %d %B %Y', strtotime('2018-10-23T13:30:00.000Z')); // Вторник, 23 Октябрь 2018