3

我正在使用以下代码将 UTC_TIMESTAMP 提交到 MySQL 数据库:

$logq = "INSERT INTO logs (Name, Page, Date) VALUES ('$user', '$page', UTC_TIMESTAMP())";

我在英国,时间目前比 UTC_TIMESTAMP 早一小时,所以我想在输入的值上增加一小时,但我不知道该怎么做。我尝试了在 Stack Overflow 上找到的几个建议,但都不起作用。有人可以让我知道如何正确执行此操作吗?另外,我不确定如何处理夏令时。有没有办法自动解决这个问题?

谢谢,

缺口

4

5 回答 5

12
DATE_ADD(UTC_TIMESTAMP(), INTERVAL 1 HOUR)
于 2012-05-05T13:11:15.677 回答
2

无论在哪里,mysql 数据类型 TIMESTAMP 始终是 UTC。您有一个函数 FROM_UNIXTIME 将时间戳在内部转换为标准 YYYY-MM-DD HH:SS 格式。使用 FROM_UNIXTIME 函数时,它会自动将该 UTC 转换为您的本地时区。因此,您无需调整时间,无论您的白天状态如何,会计总是会很好。

于 2012-05-05T14:16:13.383 回答
0

在 PHP 中创建到数据库的连接后,在任何查询之前查询此代码:

mysql_query("SET time_zone = '+3:00'");

我没有尝试过,但它应该可以解决问题。

关于这个的一些链接:

于 2012-05-05T13:11:25.257 回答
0

请使用 mysql 的 ADDDATE 功能,使用它您可以在任何日期添加小时/月/日。

 ADDDATE( UTC_TIMESTAMP(), INTERVAL 1 HOUR)

请看下面给出的 url 属于 mysql 日期时间函数

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

谢谢

于 2012-05-05T13:18:38.527 回答
0

这也适用 SELECT DATE_ADD(UTC_TIMESTAMP(), INTERVAL 1 DAY)

于 2020-03-26T10:43:17.490 回答