1

我从mysql得到一个时间戳,比如

2012-04-12 16:42:33

在 PHP 中,我如何减去小时数,或者基本上如何更改时区(-3 小时)?

4

3 回答 3

1
strtotime('-3 hours', strtotime('2012-04-12 16:42:33'));

http://php.net/manual/en/function.strtotime.php

更改时区在技术上有点棘手,因为您的时间戳是格式化的,我们不知道原始时区在哪个时区。所以,这段代码就足够了。

于 2012-04-13T17:42:25.353 回答
1

您应该使用 PHP 的DateTime。您可以查看支持的格式,然后创建一个新对象:

$date=new DateTime("2012-04-12 16:42:33");

该对象还支持更改时区和其他转换。设置新时区(来自 PHP 手册):

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
于 2012-04-13T17:45:34.430 回答
0
$hours = 3;

$time_old = "2012-04-12 16:42:33";

$time_new = strtotime($time_old);

$time_new = $time_new - (60 * $hours);

date($time_new);

这将允许您通过更改来动态更改小时$hours

于 2012-04-13T17:49:01.470 回答