Проблема с PHP DateTime - PullRequest
       7

Проблема с PHP DateTime

0 голосов
/ 06 ноября 2019

Я сделал чат, используя php, sql и ajax. Все сообщения хранятся в БД с форматом даты и времени, подобным этому, 00:00:00. Проблема: каждый день, с полуночи (00:00:00) до 00:59:59 сообщения хранятся в БД, но не отображаются в чате. В остальное время все работает отлично. Я думаю, что это зависит от часового пояса UTC. Мой часовой пояс UTC + 1 (поэтому день идет не от 0 до 23, а от 1 до 0).

На самом деле я использую этот код PHP:

$now = new DateTime(null, new DateTimeZone('Europe/Rome'));
$now = $now->format('Y-m-d H:i:s');

Столбецгде я храню эту дату и время:

'time' datetime NOT NULL DEFAULT '0000-00-00 00:00:00'

Дата всегда сохраняется правильно. Кто-нибудь может мне помочь?

РЕДАКТИРОВАТЬ: для вызова сохраненных данных я использую это:

$datetime="SELECT var1, var2, time FROM chat WHERE time >= DATE_SUB(NOW(),INTERVAL 1 HOUR) ORDER BY time ASC";
$datetimeX = $db->prepare($datetime);
$datetimeX->execute();

while($row = $datetimeX->fetch(PDO::FETCH_ASSOC)) {

echo "<span style='color:#f2f2f2;'>" . $row['time'] . " </span>";

//other stuff
}

1 Ответ

0 голосов
/ 06 ноября 2019

Вы можете попробовать это

$dateTimeZone = new DateTimeZone("Europe/Rome");
$dateTime = new DateTime("now", $dateTimeZone);
$Offset = $dateTimeZone->getOffset($dateTime);
$now = date("Y-m-d H:i:s", time() + $Offset);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...