2010-05-28 179 views
11

我想插入日期和時間到MySQL日期時間字段。當用戶選擇日期和時間時,它將生成兩個POST變量。我搜索了互聯網,但仍不知道如何去做。插入日期和時間到Mysql

我的代碼。

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

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

$datetime=$date.$time 

如果我插入$日期時間到MySQL,日期顯示爲0000-00-00:00:00:00

我很感激,如果有人可以幫助我這個。謝謝。

+1

+1全部回覆!感謝GSTo的回答! – FlyingCat 2010-05-28 15:10:43

回答

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

替代解決方案,可以處理更多格式:

$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

不錯的解決方案!謝謝! – FlyingCat 2010-05-28 15:09:52

+0

hm ....有人給你-1 ..不知道爲什麼... – FlyingCat 2010-05-28 15:12:35

+1

因爲第一個片段包含一個SQL注入漏洞。還有一個來自我。:-P :-) – Notinlist 2010-05-28 15:46:08

3

我認爲日期時間格式如下:

YYYY-MM-DD HH:MM:SS 

,所以你一定要格式化$日期時間像她那樣。並在你的查詢需要被封裝在quoation標記。

2
  • 要麼你改變的字符串,在自己的YYYY-MM-DD HH:MM:SS格式,
  • ,或者你使用從MySQL str_to_date()功能。

    INSERT INTO表DATETIME值(STR_TO_DATE($日期, 「%米/%d /%Y%H:%I」))

1

至於記得,缺省地,MySQL日期時間應該是「yyyy-mm-dd hh:mm:ss」格式。

4

日期必須證明你的格式:0000-00-00 00:00:00

所以,你必須把它轉換。 SO上有關於此轉換的數千個問題。
的捷徑是像

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

我有一個像這樣通過API添加日期和時間在MySQL數據庫:


調用API

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

  1. odate類型是日期
  2. otime類型是DB中的TIME。

它將存儲大館爲2012-03-23和otime爲十六點45分45秒。