Не удалось преобразовать формат даты и времени с помощью PHP - PullRequest
0 голосов
/ 28 марта 2019

Я пытался использовать функцию strtotime для форматирования сегодняшней даты в PHP, но это дало мне неправильный результат.Мой код указан ниже.

<?php
  $today = date("m-d-Y H:i:s");
  echo date('m-d-Y H:i:s', strtotime($today));
?>

Здесь я получаю 01-01-1970 05:30:00 результат.

Здесь мне нужно получить правильный результат даты и времени.

1 Ответ

2 голосов
/ 28 марта 2019

date("m-d-Y") это то, что вызывает проблемы для вас. Например, возьмите 01-02-2019 и 02-01-2019 - какой день 1 февраля, а какой 2 января? Этот формат заставит strtotime() вернуть false, так как он не знает, какой это формат для дней, превышающих 12.

d-m-Y ожидается и действительный формат.

Вместо этого вы можете использовать DateTime::createFromFormat(). Затем вы можете создать действительный объект DateTime из этого формата и использовать его по своему усмотрению.

$today = DateTime::createFromFormat("m-d-Y H:i:s", date("m-d-Y H:i:s"));
echo $today->format("m-d-Y H:i:s");

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

echo date("m-d-Y H:i:s");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...