База данных PDO и access.mdb изменяет часовой пояс с помощью запроса INSERT - PullRequest
0 голосов
/ 22 мая 2018

У меня проблема с вставкой поля даты / времени в базу данных ACCESS .MDB с использованием соединения PDO.Я работаю на локальном хосте с 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 Ответ

0 голосов
/ 22 мая 2018

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

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

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

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

приведет кдайте ожидаемое время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...