2014-03-04 72 views
0

我一直試圖讓這段代碼工作大約半個小時,對於我來說,我不能。我已經能夠迴應時間,但是當我嘗試將它實現到我的PHP解析器時,它只返回全0。我嘗試了很多不同的方式,但代碼只反映了我嘗試過的一種方式。時間()不適用於PDO

date_default_timezone_set('America/Los_Angeles'); 
    $date = date("m/d/Y h:i:s a", time()); 
    $dbh = new PDO('mysql:host=localhost;dbname=x', 'x', 'x'); 
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $dbh->prepare("INSERT INTO zzz (x, x1, x2, reply_date) VALUES (:x, :x1, :x2, :date1)"); 
    $stmt->bindParam(':x', $_POST['yyy']); 
    $stmt->bindParam(':x1', $_POST['qqq']); 
    $stmt->bindParam(':x2', $_POST['ppp']); 
    $stmt->bindParam(':date1', $date); 
    $stmt->execute(); 

回答

1

如果您reply_date列是一個DATETIME列,你必須確保通過的日期爲a format recognizable by your database。否則,它會爲日期插入0000-00-00 00:00:00。

但是,如果你要插入反正當前時間,剛剛從

INSERT INTO zzz (x, x1, x2, reply_date) VALUES (:x, :x1, :x2, :date1) 

改變你插入到

INSERT INTO zzz (x, x1, x2, reply_date) VALUES (:x, :x1, :x2, NOW()) 

這將照顧它。然後,您可以輕鬆地將此日期格式化爲PHP中從數據庫中獲取所需的任何內容,例如

$dt = new DateTime($row['date']); 
echo $dt->format('m/d/Y h:i:s a') 

或程序的方式:

echo date('m/d/Y h:i:s a', strtotime($row['date']); 

如果您需要與一個時區,請上網:

+0

非常感謝你許多。你真的很有幫助。 –

相關問題