任何PHP或MySQL函数都可以在不影响时区的情况下获取Unix时间
我在数据库中存储了一个时间,例如,此数据:任何PHP或MySQL函数都可以在不影响时区的情况下获取Unix时间,php,mysql,unix,datetime,Php,Mysql,Unix,Datetime,我在数据库中存储了一个时间,例如,此数据:2014-03-25 13:15:00 但是当我通过mysql查询使用UNIX\u时间戳(date\u字段)或在PHP中使用strotime()时,这两个函数的输出都受时区的影响 请告诉我是否有可能在没有时区效应的情况下获得unix时间? 如果任何人都能提供PHP函数,这将非常有帮助 请不要建议我改变时区,因为这不是一个合适的解决方案 转换到unix,然后再次转换为日期时的当前输出2014-03-25 14:05:00 更新 这不仅发生在DB时间上。就像
2014-03-25 13:15:00
但是当我通过mysql查询使用UNIX\u时间戳(date\u字段)
或在PHP中使用strotime()
时,这两个函数的输出都受时区的影响
请告诉我是否有可能在没有时区效应的情况下获得unix时间?
如果任何人都能提供PHP函数,这将非常有帮助
请不要建议我改变时区,因为这不是一个合适的解决方案
转换到unix,然后再次转换为日期时的当前输出2014-03-25 14:05:00
更新
这不仅发生在DB时间上。就像我直接称之为:
日期('Y-m-d H:i:s',标准时间(2014-03-25 14:05:00))
然后它输出
2014-03-25 08:35:00
使用PHP,您可以使用:
这假设数据库中的时间以UTC表示
PHP5.3之前
您的服务器设置为什么时区?您用来存储时间的数据类型是什么?我从来没有设置时区,我想它将是默认时区。(顺便说一句,我在使用WAMP)@hago我使用时间戳数据类型,但这个问题与时区性能有关
UNIX\u时间戳(timestamp\u type\u列)
将不会执行任何时区转换,因为时间戳
类型列已经存储在UTC中。但是,将文字'2014-03-25 13:15:00'
存储到时间戳
类型列中,因此必须将会话的转换为UTC,这大概就是您的问题所指的效果。但人们怎么会有其他的预期呢?当然,这假设文字事实上是UTC(我有点怀疑)谢谢,我会尝试这个解决方案,但是我的大多数用户都没有使用php5.3(我知道它很旧),但是我必须要求他们更新到5.3。但实际上我会试试这个。@user007我添加了5.3之前的版本。当我使用gmdate()时,您的解决方案输出了正确的日期,但UNIX时间仍然不正确。我已经有时间戳了,我想要正确的UNIX时间。感谢您的帮助。strotime('2014-03-25 14:05:00')
正在输出1395756300
$date = new DateTime('2014-03-25 13:15:00', new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:s'); // 2014-03-25 13:15:00
echo $date->format('U'); // 1395753300
$date = '2014-03-25 13:15:00';
echo gmdate('Y-m-d H:i:s', strtotime("$date GMT"));