для формата

я есть дата ("мм / дд / гггг"), и я хочу преобразовать ее в тип данных MySQL DATE (например, гггг-мм-дд)

Как мне сделать это с PHP?

Ответы на вопрос(6)

function date2mysql($date) {

   list($month, $day, $year) = explode('/', $date);
   $timestamp = mktime(0, 0, 0, $month, $day, $year);
   return date("Y-mm-d",$timestamp);
}

руководство по дате для формата

$date = '12/25/2011';
$parts = explode('/', $date);
$sql_date = $parts[2] . '-' . $parts[0] . '-' . $parts[1];
 med28 мая 2011 г., 03:17
@OMG он должен быть таким же, как он был загружен из Facebook Connect API, используя PHP SDK 3, это день рождения пользователя.
 OMG Ponies28 мая 2011 г., 03:11
А как насчет '01 / 02/2011 '- это 1 февраля или 2 января? Не у всех формат даты одинаковый ...
 rid28 мая 2011 г., 03:12
ОП сказалmm/dd/yyyy.
 rid28 мая 2011 г., 03:15
Конечно, нет. Если у вас есть свидание01/02/2011 и вы не знаете, что представляет каждое поле, тогда ничто не может помочь.
 OMG Ponies28 мая 2011 г., 03:13
Моя точка зрения заключалась в том, что независимо от того, что говорит OP, это решение не идеально для большинства ситуаций.

Если ваша дата в$your_date, тогда:

$mysql_date = date('Y-m-d', strtotime($your_date));

Видетьstrtotime () документация.

 OMG Ponies28 мая 2011 г., 03:12
Для MySQL это все еще только строка, которую вынадежда интерпретируется как тип данных DATE.
 Tadeck28 мая 2011 г., 03:18
@OMG_Ponies Как вы думаете, процессы MySQLDATE тип? На самом деле это скорее строка, чем формат реального времени (например,TIMESTAMP где значение хранится в эпоху Unix).

INSERT INTO my_table (id, date) values (1, str_to_date('10/30/2010','%m/%d/%Y'))
 Nicola Cossu28 мая 2011 г., 03:24
+1 Хороший совет для ОП. ;)

пример

select str_to_date('10/30/2010','%m/%d/%Y') -- 2010-10-30
 med28 мая 2011 г., 03:10
Мне нужно что-то вроде регулярного выражения
 OMG Ponies28 мая 2011 г., 03:10
+1: PHP не создает тип данных MySQL
 med28 мая 2011 г., 03:10
нет, я имею в виду, что он будет преобразован перед сохранением в te db

ы в метку времени, потому что мне проще всего делать то, что я хочу.

В таком случае:

<?php
echo date( "Y-m-d",strtotime("09/02/1988"));
?>

http://codepad.viper-7.com/Z9vDv7

 Marc B28 мая 2011 г., 05:35
Что о03/04/2011? Это 3 апреля или 4 марта? strtotime удобен, но это НЕ волшебная пуля. Безопаснее в использованииdate_create_from_format() когда вы знаете, какой формат заранее.

Ваш ответ на вопрос