【发布时间】:2014-03-25 08:06:14
【问题描述】:
我在我的数据库中存储了一个时间,例如这个数据:2014-03-25 13:15:00
但是当我在 PHP 中通过 mysql 查询 或 strtotime() 使用 UNIX_TIMESTAMP(date_field) 时,这两个函数的输出都会受到时区的影响。
请告诉我是否有可能在没有时区影响的情况下获得 unix 时间? 如果有人能提供 PHP 函数,那也将非常有帮助。
请不要建议我更改时区,因为这不是一个合适的解决方案。
2014-03-25 14:05:00 转换为 unix 时的当前输出,然后再次转换为日期 2014-03-25 08:35:00
更新
这不仅发生在数据库时间。就像我直接调用它一样:
date('Y-m-d H:i:s', strtotime(2014-03-25 14:05:00))
然后输出
2014-03-25 08:35:00
【问题讨论】:
-
您的服务器设置为哪个时区?
-
你用什么数据类型来存储时间?
-
我从未设置过时区,我认为它将是默认时区。 (顺便说一句,我正在使用 WAMP)
-
@hago 我用的是timestamp数据类型,但是这个问题和时区有关
-
执行
UNIX_TIMESTAMP(timestamp_type_column)不会执行任何时区转换,因为TIMESTAMP类型的列已经存储在UTC 中。但是,将文字'2014-03-25 13:15:00'存储到TIMESTAMP类型列 必须 因此从会话的time_zone转换为 UTC,这可能是您的问题所指的效果。但是,人们怎么能期望其他呢?