5

Преобразование формата даты в PHP

10

У меня возникла проблема с преобразованием даты из формата yyyy-mm-dd в формат dd-mm-yyyy на PHP, но мне не нужно использовать SQL для этого. Я столкнулся с трудностью из-за того, что функция для работы с датами требует временной метки (timestamp), и я не могу получить временную метку из этой строки.

Как можно это сделать?

5 ответ(ов)

0

Вы можете использовать следующий код на PHP для того, чтобы изменить формат даты, не прибегая к преобразованию типов:

echo implode('-', array_reverse(explode('-', $date)));

Этот код разбивает строку даты на части по разделителю '-', затем разворачивает массив и снова объединяет элементы с тем же разделителем. Таким образом, вы получаете дату в обратном порядке.

Если ваше использование связано с производительностью и overhead от преобразования даты не имеет значения, такой подход вполне приемлем. Убедитесь, что входная дата всегда имеет правильный формат (например, гггг-мм-дд), иначе результат может быть неожиданным.

0

Этот код преобразует дату в формате день-месяц-год в формат год-месяц-день с помощью функции preg_replace в PHP.

Вот как он работает:

$newDate = preg_replace("/(\d+)\D+(\d+)\D+(\d+)/","$3-$2-$1",$originalDate);

Здесь используется регулярное выражение (\d+)\D+(\d+)\D+(\d+), которое находит три группы чисел, разделённых любыми нечисловыми символами (например, пробелами или дефисами).

  • (\d+) соответствует первой группе (день),
  • (\d+) соответствует второй группе (месяц),
  • (\d+) соответствует третьей группе (год).

Затем, в строке замены "$3-$2-$1" указывается новый порядок элементов, где $3 — это год, $2 — месяц, а $1 — день. Таким образом, выходной формат будет год-месяц-день, например, 2023-10-05.

Вы можете изменить порядок переменных в строке замены (например, на $3-$1-$2), если ваш старый формат даты отличается.

0

Еще одна неочевидная возможность:

$oldDate = '2010-03-20';
$arr = explode('-', $oldDate);
$newDate = $arr[2].'-'.$arr[1].'-'.$arr[0];

Не уверен, что буду использовать это, но все же 😃

0

Есть два способа реализовать это:

  1. Используя функцию strtotime и date:
$date = strtotime($date);
$new_date = date('d-m-Y', $date);
  1. Используя класс DateTime:
$cls_date = new DateTime($date);
echo $cls_date->format('d-m-Y');

Оба метода позволят вам преобразовать дату в нужный формат, но второй вариант с использованием DateTime более современный и рекомендуется для работы с датами в PHP.

0

В PHP любую дату можно преобразовать в необходимый формат с помощью функции date(). Например, чтобы изменить формат даты на "День, Дата Месяц Год", можно использовать следующий код:

$newdate = date("D, d M Y", strtotime($date));

Этот код преобразует дату в следующий удобный формат:

Пн, 16 Ноя 2020

Важно помнить, что для правильной работы необходимо, чтобы переменная $date содержала корректное значение даты. Функция strtotime() преобразует строку даты в метку времени, которую затем можно отформатировать с помощью функции date().

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь