Как формат даты «c» или «r» работает в PHP?

Я попытался отформатировать дату, используя формат «c» или «r», и в итоге получил странные результаты.

Я пробовал интерпретатор PHP со своего персонального компьютера или использовал образ php:latest Docker.

Попутно я перепробовал множество методов, и даже результаты этих меня удивили.

var_dump(DateTime::createFromFormat('c', (new DateTime())->format('c'))); // false
// or
var_dump(DateTime::createFromFormat('r', (new DateTime())->format('r'))); // false

(new DateTime())->format('c') возвращает строку в ожидаемом формате, но я думал, что создание из нее объекта DateTime вернет допустимый объект, а не false.

Что это за поведение?

Спасибо за вашу помощь :)

$t = new DateTime(); echo $t->format('c'); // 012345 этого достаточно, я думаю вы все усложняете
Rahul 21.06.2019 15:58

Я пытаюсь проверить пользовательский ввод в своем проекте, а не просто создать объект из пустоты. Вот почему я использую DateTime::createFromFormat(), чтобы проверить, соответствует ли ввод пользователя формату даты.

hunomina 21.06.2019 16:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
2
1 136
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эти символы формата неизвестны в соответствии с документация, где также указано (выделено мной):

$format The format that the passed in string should be in. See the formatting options below. In most cases, the same letters as for the date() can be used.

Вы можете вызвать DateTime::getLastErrors(), чтобы увидеть больше (хотя и немного запутанных) деталей:

Array
(
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 2
    [errors] => Array
        (
            [0] => The format separator does not match
            [1] => Trailing data
        )

)

Спасибо ! Я смотрел не ту документацию >_< Я читал документацию date() (php.net/manual/fr/function.date.php) :/ Еще раз спасибо :D

hunomina 21.06.2019 17:15

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