У меня есть календарь jQuery, который устанавливает входное значение на MM/DD/YYYY
Как я преобразовал бы его так, чтобы мой столбец базы данных (дата) мог принять его правильно?
Править
Gordon был прав - его ссылка указала на меня на этот ответ
$mysql_date = date('Y-m-d H:i:s', strtotime($user_date));
$date = "07/12/2010";
$your_date = date("Y-m-d", strtotime($date));
Надеюсь, мой ответ окажется полезным :)
В качестве альтернативы вы можете сделать это без использования explode
:
$date = "12/25/2010";
$mysql_date = date('Y-m-d', strtotime($date));
Теперь вы можете использовать $ mysql_date
для вставки в вашу базу данных.
Нам нужна дополнительная информация?
1) Какой скрипт вставляется в базу данных? Я предполагаю PHP
2) Также нам нужно знать, как вы храните дату и в каком формате?
Мое решение будет таким:
$dates = preg_split('/\//',$_POST['date']);
$month = $dates[0];
$day = $dates[1];
$year = $dates[2];
$finalDate = $year.'-'.$month.'-'.$day;
Вы хотите сделать это в PHP, верно?
Используйте Explode
$christmas = "12/25/2010";
$parts = explode('/',$christmas);
$yyyy_mm_dd = $parts[2] . '-' . $parts[0] . '-' . $parts[1]
Используйте strptime
, чтобы разобрать его до временной метки, а затем strftime
, чтобы отформатировать его так, как вам нужно.
Я предлагаю использовать функцию strtotime ()
, а затем date ()
. Этим вы можете преобразовать любой формат даты.
$unix_time_stamp = strtotime($mm_dd_yyyy);
$yyyy_mm_dd = date(Y/m/d,$unix_timestamp);
, если вам нужна всего одна строка, попробуйте следующее:
$time = "07/12/2010";
$new_time = preg_replace("!([01][0-9])/([0-9]{2})/([0-9]{4})!", "$3-$1-$2", $time);
var_dump($time);
var_dump($new_time);