table 上存储的时间比现在长

Time stored on table is greater than now

我有这种奇怪的情况。

我正在尝试将存储在 table 上的时间转换为 time-ago 格式。 它在我的本地主机上运行良好,但在服务器上运行良好。

由于某种原因,在计算现在和服务器时间之间的差异时,我收到一个负数。

这是一个例子:

$time = '2015-01-02 05:52:49'; //Time that is stored on the created cell
$now = time();
$seconds = strtotime($time);

$difference = $now - $seconds;

以上代码的输出是-13628

时区设置为 date_default_timezone_set('America/New_York');

我在这里错过了什么?

如果 date/time 你 运行 这是在 '2015-01-02 05:52:49' 之前,那么 - 符号是合乎逻辑的。试试用这个代替:

$date1 = new DateTime();
$date2 = new DateTime('2015-01-02 05:52:49');
$now = $date1->getTimestamp();
$seconds = $date2->getTimestamp();
$difference = $now - $seconds;

[已解决]

所以,问题是我将时区设置为 date_default_timezone_set('America/New_York');

为了解决这个问题,我将其更改为date_default_timezone_set('UTC');

现在运行良好。

用户关注代码 date_default_timezone_set('UTC'):

而不是 date_default_timezone_set('America/New_York');