Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
任何PHP或MySQL函数都可以在不影响时区的情况下获取Unix时间_Php_Mysql_Unix_Datetime - Fatal编程技术网

任何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"));