Мне нужно преобразовать дату в таком формате:
28 ноября 2009 г.
к формату даты MySQL:
2009-28-11
Каков наилучший способ преобразования даты с помощью PHP?
Импровизировано: http://www.bigroom.co.uk/blog/dates-in-php-and-mysql
$mysqldate = date( 'Ym-d', strtotime( $phpdate ) ); // Example: $phpdate = 'November 20, 2009'; $mysqldate = date( 'Ym-d', strtotime( $phpdate ) ); echo $mysqldate; // output: 2009-11-20
Мне нравится использовать strtotime и функцию date следующим образом:
$mysql_date = date("Ymd", strtotime($source_date));
Существует два варианта использования strtotime
или preg_split
и sprintf
. Я рекомендую использовать strtotime
. Структура выглядит следующим образом:
$date = 'November 28 2009'; $sqldate = date('Ym-d', strtotime($date));
Удостоверьтесь, что Y является капиталом, поэтому он читает 0000, иначе он будет читать 00.
Если вы хотите, чтобы «дата» была преобразована в «DateTime», это лучший способ =
// for example: you have a string with the following $dateFormat = 'd/m/Y'; $dateString = '02/12/2019'; // you can easily create DateTime using $dateTime = \DateTime::createFromFormat($dateFormat, $dateString);
Как описано в документации php для createFromFormat .
И полностью ответить на ваш вопрос:
echo $dateTime->format('ym-d');