我有这种奇怪的情况。
我试图将存储在桌面上的时间转换为 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');
。
我在这里缺少什么?
答案 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( '美国/纽约');