У меня есть веб-сайт, для которого требуется, чтобы пользователь вводил дату, которая затем хранится в базе данных MySQL. Я хотел бы, чтобы пользователь вводил дату в m/d/yyyy и преобразовал ее в формат Y-m-d, который требуется MySQL. Я подумал, что было достаточно просто, но я не могу заставить его прекратить делать серьезную ошибку,Преобразование между форматами даты в PHP
Я попытался следующие:
$date = new DateTime($this->vital_date);
$this->vital_date = $date->format('Y-m-d');
Когда пользователь вводит 9/6/2013, 2013 -06-09 хранится в таблице MySQL. (Обратите внимание на перестановку месяца и даты
Затем я попробовал старый, предварительно объектного путь:..
$date = strtotime($this->vital_date);
$this->vital_date = date('Y-m-d', $date);
И что сделало то же самое - транспонированный месяц и дату
может кто-нибудь дать мне любую помощь на то, что я делаю неправильно или как я мог бы сделать лучшее преобразование.
Вместо того чтобы использовать прямую DateTime, используйте статический метод [DateTime :: createFromFormat()] (http://www.php.net/manual/en/datetime.createfromformat.php), где вы указываете формат строки даты –
Возможно, все в порядке, но ваш mysql использует неправильный (европейский) формат? Вы пытались сохранить дату и получить ее снова? – cerkiewny