2010-05-28 19 views
11

Próbuję wstawić datę i czas do pola datetime mysql. Gdy użytkownik wybierze datę i godzinę, wygeneruje dwie zmienne POST. Szukałem internetu, ale nadal nie jestem pewien, jak to zrobić.Wstaw datę i godzinę do Mysql

Mój kod.

//date value is 05/25/2010 
//time value is 10:00 

$date=$_POST['date']; 
$time=$_POST['time']; 

$datetime=$date.$time 

Gdybym wstawić $ DateTime do mysql, data wydaje się być 0000-00-00: 00: 00: 00

Doceniam to, czy ktoś może mi pomóc w tej sprawie. Dzięki.

+1

+1 do wszystkich odpowiedzi! Dzięki odpowiedź GSTo! – FlyingCat

Odpowiedz

7
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00'; 
$datetime = mysql_real_escape_string($datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 

alternatywne rozwiązanie, które może obsługiwać więcej formatów:

$datetime = $_POST['date'] . ' ' . $_POST['time']; 
$datetime = mysql_real_escape_string($datetime); 
$datetime = strtotime($datetime); 
$datetime = date('Y-m-d H:i:s',$datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 
+0

fajne rozwiązanie! Dzięki! – FlyingCat

+0

hm .... ktoś dał ci -1 .. nie wiesz dlaczego ... – FlyingCat

+1

Ponieważ pierwszy fragment zawiera lukę SQL injection. Jeszcze jeden -1 ode mnie.:-P :-) – Notinlist

3

myślę format datetime wygląda następująco:

YYYY-MM-DD HH:MM:SS 

więc masz do formatowania $ DateTime tak wyglądać. I w zapytaniu, które należy zamknąć w znakach quoation.

2
  • Albo przekształcić ciąg być w formacie siebie YYYY-MM-DD HH:MM:SS,
  • lub użyć funkcji str_to_date() z MySQL.

    INSERT INTO wartości datetime tabeli (str_to_date (data $ "% m /% d /% Y% H:% I"))

1

O ile pamiętam, domyślnie MySQL DateTime powinien być w formacie "yyyy-mm-dd hh: mm: ss".

4

Data musi mieć format pokazany wam: 0000-00-00 00:00:00

Więc trzeba go przekonwertować. Tysiące pytań na temat tej konwersji tutaj na SO.
Najkrótsza droga jest jak

list($m,$d,$y) = explode("/",$_POST['date']); 
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']); 
0

Mam datę i godzinę w mysql db dodany przez API tak:


wywołanie API

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. odate typ jest DATE
  2. otime Typ to CZAS w DB.

To będzie przechowywać Odate jak 2012-03-23 ​​16:45:45 jak i otime.

Powiązane problemy