我一直试图让这段代码工作大约半个小时,对于我的生活,我做不到。我已经能够回应时间,但是当我尝试将它实现到我的PHP解析器中时,它只返回所有0的。我尝试了很多不同的方法,但代码只反映了我尝试过的一种方式。
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();
答案 0 :(得分:1)
如果您的reply_date
列是日期时间列,则必须确保传递的日期位于a format recognizable by your database。否则它会插入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']);
如果你需要一个时区,请查看: