【问题标题】:Issue with DateTime PHP日期时间 PHP 的问题
【发布时间】:2019-11-06 01:00:04
【问题描述】:

我使用 php、sql 和 ajax 进行了聊天。所有消息都以日期时间格式存储在数据库中,例如 0000-00-00 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
}

【问题讨论】:

  • 如何从数据库中检索和过滤消息?粘贴一些相关代码
  • @Gasol ...完成!
  • stackoverflow.com/a/10720926 也将 NOW() 转换为欧洲/罗马

标签: php mysql ajax datetime


【解决方案1】:

作为一个php函数 date_default_timezone_set ( string $timezone_identifier ) : bool 是设置所有日期/时间函数使用的默认时区的选项。

例如:

<?php
    date_default_timezone_set('Europe/Amsterdam');
?>

提供了supported timezone 的参考列表。
更多信息请参考this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多