我刚刚遇到有关datetime
问题的问题。我只是将数据插入数据库并与当前日期时间进行比较,这似乎是一个问题。
sql查询
$result = mysql_query("INSERT INTO table_name(lastWarnDate) VALUES(NOW())");
我的PHP代码
//$result["lastWarnDate"] = "2014-10-20 22:00:49"
$datetime1 = strtotime(date("Y-m-d H:i:s"));
$datetime2 = strtotime($result["lastWarnDate"]);
$interval = abs($datetime2 - $datetime1);
$minutes = round($interval / 60);
//$datetime1 = 2014-10-21 02:11:44
//$datetime2 = 2014-10-20 22:00:49
我的时区是Asia/Kuala_Lumpur
。我的服务器位于新加坡。我正在使用Digital Ocean服务器。
顺便说一下,插入数据后输出直接显示。请指教。谢谢。
答案 0 :(得分:0)
在PHP中
定义(' TIMEZONE',' Asia / Kuala_Lumpur');
在Mysql(或其他PDO兼容数据库)中
$ db = new PDO(' mysql:host = localhost; dbname = test',' dbuser', ' DBPASSWORD&#39);
$ db-> exec(" SET time_zone =' Asia / Kuala_Lumpur&#39 ;;");
SitePoint synchronize php mysql timezone configuration提供了一个基于PHP中设置的时区自动配置数据库时区的优雅解决方案
答案 1 :(得分:0)
并下载“ POSIX标准时区描述表,版本2011n ”并根据站点说明在您的数据库中更新它。你会完成它。
答案 2 :(得分:0)
这是因为您的系统时区与服务器不匹配。打开mysql控制台并输入你的时区,如下所示:SET GLOBAL time_zone = "+06:00";
考虑差距。然后重启mysql。
答案 3 :(得分:0)
我已经找到了答案。最正确的答案是使用UTC_TIMESTAMP()
代替NOW()
。谢谢大家的帮助!!