Articles of iso8601

PHP Datetime не может преобразовать отрицательную дату ISO8601

Преобразование отрицательной даты с помощью DateTime приведет меня к ошибке Тестовый код var_dump(\DateTime::createFromFormat(\DateTime::ISO8601, '-0001-11-30T00:00:00+0100')); результат boolean false Ожидаемый результат object(DateTime)[5] public 'date' => string '-0001-11-30 00:00:00' (length=20) public 'timezone_type' => int 1 public 'timezone' => string '+01:00' (length=6) (или что-то подобное) PS Строка отрицательной даты была создана с помощью формата $ d-> (\ DateTime :: […]

Почему спецификация ISO-8601 выглядит повсеместно игнорируемой, когда речь идет о десятичных знаках?

Из ISO-8601: 2004 (E) Спецификация: 4.2.2.4 Представления с десятичной дробью При необходимости для конкретного приложения может быть включена десятичная доля часа, минуты или секунды. Если включена десятичная дробь, элементы нижнего порядка (если они есть) должны быть опущены, а десятичная дробь должна быть разделена на целую часть десятичным знаком, указанным в ISO 31-0, то есть запятой […]

Как сохранить дату UTC ISO8601 в базе данных MySQL?

У меня есть тысячи дат в следующем формате: 2011-10-02T23:25:42Z (также ISO 8601 в UTC) Какой тип данных MySQL следует использовать для хранения такой даты ISO8601 в базе данных MySQL? Например, Datetime , timestamp или что-то еще? Что лучше для сравнения (например, получение записей между двумя датами / временем) и упорядочение результатов запросов? Что, если база […]

Разбор и создание ISO 8601. Временные интервалы даты и времени, такие как PT15M в PHP

Библиотеку и веб-сервис, которые я использую, обмениваются временными интервалами в ISO 8601: PnYnMnDTnHnMnS. Я хочу преобразовать такие форматы в несколько секунд. И наоборот. Секунды намного легче рассчитать. Пример значений интервала: PT1M или PT60S (1 минута) PT1H, PT60M или PT3600S (1 час) Мне нужны две функции: проанализировать от таких значений до секунд: iso8601_interval_to_seconds() и от секунд […]

Как отображать дату как формат iso 8601 с помощью PHP

Я пытаюсь отобразить datetime из моей базы данных MySQL как сформированную строку iso 8601 с PHP, но это выходит неправильно. 17 октября 2008 года выходит как: 1969-12-31T18: 33: 28-06: 00, что явно неверно (год должен быть не в 1969 году) Это код, который я использую: <?= date("c", $post[3]) ?> $post[3] is the datetime (CURRENT_TIMESTAMP) из […]

Как отформатировать дату UTC для использования указателя зоны Z (Zulu) в php?

Мне нужно отображать и обрабатывать даты UTC в следующем формате: 2013-06-28T22: 15: 00Z Поскольку этот формат является частью стандарта ISO8601, у меня нет проблем с созданием объектов DateTime из строк, подобных приведенным выше. Однако я не могу найти чистый способ (что означает отсутствие строковых манипуляций, таких как substr и replace, и т. Д.), Чтобы представить […]

PHP проверяет строку даты ISO 8601

Как вы проверяете строку даты ISO 8601 (например: 2011-10-02T23: 25: 42Z). Я знаю, что существует несколько возможных представлений о датах ISO 8601, но я заинтересован только в подтверждении формата, который я дал в качестве примера выше. Благодаря!