PDO и access.mdb с помощью запроса INSERT

Giuseppe Lodi Rizzini спросил: 28 апреля 2018 в 09:00 в: php

У меня проблема с вводом поля даты / времени в базу данных ACCESS .MDB с использованием PDO-соединения. Я работаю на localhost с WAMP SERVER

Я работаю в Италии.

Важно: я НЕ ИСПОЛЬЗУЮ 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));

Теперь, если я извлечу вставленную запись, я получаю DateTime за 2 часа до этого!

$sql = "SELECT * FROM table WHERE ID = ?";
...
...// var_dump($result['DateTime']);
// OUTPUT
// 2018-05-22 10:29:02  <--- 2 hour before!!!

1 ответ

Есть решение
Ebski ответил: 28 апреля 2018 в 09:17

Вам нужно указать часовой пояс вашего DateTime.

$dateHour = new DateTime('now', new DateTimeZone('Europe/Rome')

Я не пытался отправить его в базу данных, но получаю строку с помощью

$dateHour->format('Y-m-d H:i:s')

даст ожидаемое время