存储在表格上的时间比现在大

时间:2015-01-02 07:10:37

标签: php mysql

我有这种奇怪的情况。

我试图将存储在桌面上的时间转换为 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');

我在这里缺少什么?

3 个答案:

答案 0 :(得分:0)

如果您运行此日期/时间是在'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;

答案 1 :(得分:0)

[解决]

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

要解决此问题,我将其更改为date_default_timezone_set('UTC');

现在它运作良好。

答案 2 :(得分:0)

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

而不是 date_default_timezone_set( '美国/纽约');