fast-dev
@fast-dev

Как узнать по строке, какой формат даты используется?

Мне приходит строка например 2019-05-12T08:21:53.504Z
В каком формате это время? И форматов очень много, есть ли функция или онлайн сервис для определения. Что это за формат и как текущую дату получить в таком же стандарте?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 3
php666
@php666
PHP-макака
Вот что получается.
1. Твоя нотация не является частью списка форматов DateTimeInterface, поэтому код ниже ее не найдет - нужно самому формат составлять и мержить массив из рефлексии со своим.
2. Многие форматы даты в PHP идентичны. Точного ответа не дать, т.к. например
DATE_RFC1123
RFC 2822
DATE_RSS
идентичны... судя по тому, что написано в мане.

<?php

$time = 'Mon, 15 Aug 05 15:52:01 +0000';

try {
    $date = new \DateTime($time);
} catch (\Exception $e) {
    echo 'PHP unsupported format date, hahah!!';
    exit;
}

$reflection = new ReflectionClass('DateTime');

// тут нужен массив $reflection->getReflectionConstants() + вписать нужные форматы
foreach ($reflection->getReflectionConstants() as $format) {
    $const = constant("DateTime::{$format->name}");
    if ($date->format($const) === $time) {
        echo "Time $time has format {$format->name}\n";
        echo trim($date->format($const)).' === '.$time;
        exit;
    }
}
Ответ написан
irishmann
@irishmann
Научись пользоваться дебаггером
Изучай

UPD. 2019-05-12T08:21:53.504Z - это нотация ISO8601
Ответ написан
glaphire
@glaphire
PHP developer
Сервисы - надо искать, но всегда есть мануал по формату даты и времени, там можно самому подобрать реверсом)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.