2013-05-09 18 views
5

Próbuję zapisać datestring w PHP do bazy danych MySQL jako typ datownika. Znalazłem wiele postów na ten temat, ale żaden z nich nie pracował dla mnie. To co próbowałem:Zapisz ciąg dat w bazie danych MySQL jako sygnaturę czasową

$date = $_POST['date']; 
$timestamp = date("m/d/Y", strtotime($date)); 
$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 

Ale w bazie danych, tylko dostać:

0000-00-00 00:00:00 

Ciąg wejściowy z obiektu post jest 05/30/2013. Dziękuję bardzo za Twoje wsparcie!

+0

mySQL oczekuje, że ' Format Ymd' dla znaczników czasu. Zmień odpowiednio format, a będziesz dobry. –

+0

Czy to już sprawdziłeś? http://stackoverflow.com/questions/2501915/convert-date-string-to-mysql-datetime-field – Madthew

+0

http://stackoverflow.com/questions/7112982/converting-string-to-mysql- timestamp-format-in-php jest tym czego oczekujesz. – Anvesh

Odpowiedz

14

To może pracować dla Ciebie:

$date = $_POST['date']; 
$timestamp = date('Y-m-d H:i:s', strtotime($date)); 

$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 
+1

Dziękuję! Zadziałało. – doonot

0

trzeba usunąć wierzchołek do umieszczania znacznika czasu tak długo

insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', $timestamp, '$id') 

ani używać tego formatu daty „RMD H: i: s”

0

jeśli masz datę typ pola jako DATE lub DATE/TIME IT doda takie sygnatury czasowe. musisz ustawić typ pola daty jako varchar i dodać znaczniki czasu jako łańcuchy.

jeśli trzeba dodać datę w formacie D/M/Y wtedy mysql ma inny format jak y-m-d więc przed dodaniem można zrobić, jak to

date('y-m-d', strtotime('your-date-string'))

0

Ten pracował dla mnie:

//timestamp fix 
$date = new \DateTime(); 
$created_at = $date->setTimestamp(intval($timestamp)); 
0
SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00'); -- **1111885200** 
SELECT FROM_UNIXTIME(1111885200);    -- **2005-03-27 03:00:00** 
$date = $_POST['date']; 
$timestamp = date('Y-m-d H:i:s', strtotime($date)); 

$sql = "insert into sale(service, amount, date, customerid_fk) values 
    ('$service', '$amount', UNIX_TIMESTAMP('$timestamp'), '$id');" 
0

należy użyć metody mysql

mam tę datę z datebox z easyui

08/25/2016

następnie

$date = "FROM_UNIXTIME(".strtotime(08/25/2016).")"; 

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date); 
Powiązane problemy