我发现这是一个经过时间的字符串的例子。我有一个奇怪的事情发生,当我从我的本地网络服务器发布它到我的远程数据库,它将显示从我的本地网络服务器正确的时间,但当你从我的实时网络服务器发布它回来12小时刚刚发布的时候。 (当它从我的远程服务器更新到我在网络服务器上托管的远程数据库的时候。发现很奇怪我的本地人会给我正确的时间而我的遥控器会有12小时失效如果有人知道为什么会这样,那就太棒了。
static function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
当我返回所有细节时,这就是我在本地服务器上获得的内容
Server Time: 2016-09-12 02:17:29
2016-09-12 02:04:48 //Posted
12 minutes ago
当我在远程服务器上看同样的东西时,我得到了
Server Time: 2016-09-12 12:22:37
2016-09-12 12:22:35 //Posted
11 hours ago
这意味着发布的时间是正确的,并且计算已经过了多长时间。