MySQL时间戳的奇怪strtotime转换
我有一个 MySQL 字段,它以以下格式提供时间戳:YYYY-MM-DD HH:MM:SS
。默认值为 CURRENT_TIMESTAMP
。现在,当我尝试将其转换为 Unix 时间戳时,我得到了一些奇怪的结果。
实际上,我正在使用 这个 函数来计算相对时间。即使 MySQL 时间戳仅比之前几秒,它也会输出负整数。我不知道出了什么问题。
我还发现了一些奇怪的问题。例如,在 MySQL 中,
mysql> select from_unixtime(1289206455);
+---------------------------+
| from_unixtime(1289206455) |
+---------------------------+
| 2010-11-08 14:24:15 |
+---------------------------+
1 row in set (0.03 sec)
在 PHP CLI 中:
php -r "echo date('Y-m-d h:m:s', 1289206455);"
2010-11-08 09:11:15
假定的输出(在两种情况下)应为: 2010-11-08 02:54:15
来源。
所以PHP和MySQL似乎在时间上存在差异。我怎样才能同步它们?我使用的是 Ubuntu 11.04 XAMPP。
谢谢
I have a MySQL field that gives me timestamp in the format: YYYY-MM-DD HH:MM:SS
. The default is CURRENT_TIMESTAMP
. Now, when I try to convert it to Unix timestamp, I get some weird results.
Actually, I am using this function to calculate relative time. It outputs negative integers even though MySQL timestamp is only a couple of seconds older. I am at a loss as to what's wrong.
I also found some weird issues. For example, in MySQL,
mysql> select from_unixtime(1289206455);
+---------------------------+
| from_unixtime(1289206455) |
+---------------------------+
| 2010-11-08 14:24:15 |
+---------------------------+
1 row in set (0.03 sec)
In PHP CLI:
php -r "echo date('Y-m-d h:m:s', 1289206455);"
2010-11-08 09:11:15
The supposed output (in both cases) should be: 2010-11-08 02:54:15
source.
So there seems to be a difference in times in PHP and MySQL. How can I sync them? I am on Ubuntu 11.04 XAMPP.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要设置时区。
http://php.net/manual/en/function.date -default-timezone-set.php
MySQL:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone(@Idg 谢谢)
You need to set the timezone.
http://php.net/manual/en/function.date-default-timezone-set.php
MySQL: http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone (@Idg thanks)