我正在使用以下代码将UTC_TIMESTAMP提交到MySQL数据库:
$logq = "INSERT INTO logs (Name, Page, Date) VALUES ('$user', '$page', UTC_TIMESTAMP())";
我在英国,时间目前比UTC_TIMESTAMP早一小时,所以我想在输入的值上加上一小时,但是我不确定该怎么做。我尝试了一些在Stack Overflow上发现的建议,但是都没有用。有人可以让我知道如何正确执行此操作吗?另外,我不确定如何处理夏时制。有没有一种自动解决此问题的方法?
谢谢,
尼克
DATE_ADD(UTC_TIMESTAMP(), INTERVAL 1 HOUR)
mysql数据类型TIMESTAMP始终是UTC,无论在哪里。您具有函数FROM_UNIXTIME,它将内部时间戳转换为标准YYYY-MM-DD HH:SS格式。使用函数FROM_UNIXTIME时,它将自动将该UTC转换为您的本地时区。因此,您无需调整时间,无论您的日光状态如何,记帐始终是很好的选择。
用PHP创建与数据库的连接后,在执行任何查询之前先查询以下代码:
mysql_query("SET time_zone = '+3:00'");
我没有尝试过,但应该可以解决问题。
有关此的一些链接:
请使用mysql的ADDDATE功能,使用它可以在任何日期添加小时/月/日。
ADDDATE( UTC_TIMESTAMP(), INTERVAL 1 HOUR)
请看下面给出的URL属于mysql日期时间函数
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
谢谢
这也可以SELECT DATE_ADD(UTC_TIMESTAMP(),间隔1天)