我在使用PDO连接在数据库ACCESS .MDB中插入日期/时间字段时遇到问题。我正在使用WAMP SERVER
工作localhost我在意大利工作。
重要提示:我不使用MySQL
<?php
$dateHour = new DateTime('now');
// var_dump($dateHour);
// OUTPUT: 2018-05-22 12:29:02 <-- CORRECT (hour is the same of my Windows Date/Time at bottom-right of the screen (for ITALY))
$sql = "INSERT INTO table ( DateTime, ... ) VALUES ( ?, ... )";
$s = $db->prepare($sql);
$s->execute(array($dateHour));
现在,如果我检索插入的记录,我会得到2小时前的DateTime!
$sql = "SELECT * FROM table WHERE ID = ?";
...
...
// var_dump($result['DateTime']);
// OUTPUT
// 2018-05-22 10:29:02 <--- 2 hour before!!!
答案 0 :(得分:1)
您需要具体说明DateTime的时区。
$dateHour = new DateTime('now', new DateTimeZone('Europe/Rome')
我还没有尝试将其发布到数据库,但是使用
获取字符串$dateHour->format('Y-m-d H:i:s')
将给出预期时间