2014-03-04 65 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

非常感谢你许多。你真的很有帮助。 –

相关问题