2009-04-30 18 views

回答

63

像任何其他字符串

$stmt = $mysqli->prepare('insert into foo (dt) values (?)'); 
$dt = '2009-04-30 10:09:00'; 
$stmt->bind_param('s', $dt); 
$stmt->execute();

9

時間戳在PHP爲整數(秒從UNIX時期的數量)。作爲上述的備選方案是使用一個整數類型的日期/時間參數,並且MySQL函數FROM_UNIXTIMEUNIX_TIMESTAMP

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES (FROM_UNIXTIME(?))"); 
$stmt->bind_param("i", $your_date_parameter); 
$stmt->execute(); 
+1

@Rob設置日期時間&:當我使用這個時,日期設置爲1970/01/01 – 2011-04-06 11:39:33

+1

時間戳的有效範圍通常是從1901年12月13日星期五20:45:54 GMT到2038年1月19日星期二03:14:07 GMT的星期二。 (這些是與32位有符號整數的最小值和最大值對應的日期)。然而,在PHP 5.1.0之前,在一些系統(例如Windows)上,這個範圍從01-01-1970到19-01-2038是有限的。 – 2014-11-20 00:41:28

1

我使用的日期()函數和此解決我的問題。

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES ?"); 
// 6/10/2015 10:30:00 
$datetime = date("Y-m-d H:i:s", mktime(10, 30, 0, 6, 10, 2015)); 
$stmt->bind_param("s", $datetime); 
$stmt->execute(); 
0

使用mySQL函數now()作爲時間戳字段。

1

對於當前日期/時間,您可以使用MySQL標準例程。你不必準備。

$query = "INSERT INTO tablename "; 
$query .= "VALUES(?,?,?,NOW()) "; 
$preparedquery = $dbaselink->prepare($query); 
$preparedquery->bind_param("iii",$val1,$val2,$val3); 
0

首先使用日期()函數 -

$date=date("d/m/y"); 
$time=date("h:i:sa"); 

然後將它傳遞到準備好的聲明中,就像任何其他字符串可變

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn, timeColumn) VALUES (?,?)"); 
$stmt->bind_param("ss", $date , $time); 
$stmt->execute();