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");