PHP Dateformat не работает должным образом
Учитывая следующий код PHP:
$thestring = "Saturday - 05/10/2014 at 10:00 am";
echo $thestring."\n";
$thestring = str_replace("at ", "", $thestring);
echo $thestring."\n";
$thestring = substr($thestring, strpos($thestring, " - ")+3);
echo $thestring."\n";
$thedate = date_create_from_format("m/d/Y h:m a", $thestring);
echo $thedate->format("Ymd")."\n";
echo $thedate->format("Y")."\n";
echo $thedate->format("m")."\n";
echo $thedate->format("d")."\n";
Почему я получаю вывод ниже? Месяц и год выключены, и я не вижу логического объяснения этому.
Saturday - 05/10/2014 at 10:00 am
Saturday - 05/10/2014 10:00 am
05/10/2014 10:00 am
20131210
2013
12
10
1 ответ
Решение
m
является модификатором для месяцев. i
является модификатором для минут. Понимание этого неправильно, очевидно, вызовет проблемы. Изменить:
$thedate = date_create_from_format("m/d/Y h:m a", $thestring);
чтобы:
$thedate = date_create_from_format("m/d/Y h:i a", $thestring);