将一小时添加到UTC_TIMESTAMP以提交给MySQL

时间:2012-05-05 13:01:24

标签: php mysql date utc

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

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

我在英国,时间比UTC_TIMESTAMP提前一小时,所以我想在输入的值上加一小时,但我不知道该怎么做。我尝试了Stack Overflow上的一些建议,但两者都不起作用。有人能让我知道如何正确地做到这一点吗?另外,我不知道如何处理夏令时。有没有办法自动计算?

谢谢,

尼克

5 个答案:

答案 0 :(得分:8)

DATE_ADD(UTC_TIMESTAMP(), INTERVAL 1 HOUR)

答案 1 :(得分:2)

无论在何处,mysql数据类型TIMESTAMP始终为UTC。您有一个FROM_UNIXTIME函数,它将内部时间戳转换为标准的YYYY-MM-DD HH:SS格式。使用FROM_UNIXTIME函数时,它会自动将该UTC转换为您的本地时区。所以你不需要调整时间,无论你的日光状态如何,会计都会很好。

答案 2 :(得分:0)

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

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

我没有尝试过,但应该这样做。

关于此的一些链接:

答案 3 :(得分: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

感谢

答案 4 :(得分:0)

这也有效 SELECT DATE_ADD(UTC_TIMESTAMP(),间隔1天)