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');
我有这种奇怪的情况。
我正在尝试将存储在 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');