我住在肯尼亚的内罗毕。我的网站的时间在我本地的WAMP服务器上运行得很好,我用这个作为我的PHP时间函数。
// prettify time date
function soshDate($date) {
// timezone
date_default_timezone_set("Africa/Nairobi");
// current time
$now = time();
$old = strtotime($date);
$diff = $now-$old;
$old = new DateTime($date);
// check time passed
if ($diff /60 <= 1) { return " 1 sec"; }
else if (intval($diff/60) == 1) { return " 1 min"; }
else if ($diff / 60 < 60){ return intval($diff/60)." mins"; }
else if (intval($diff / 3600) == 1){ return " 1 hr"; }
else if ($diff / 3600 <24){ return intval($diff/3600) . " hrs"; }
else if ($diff/86400 == 1 ){ return "yesterday"; }
else if ($diff/86400 > 1 && $diff/86400 <= 7){ return$old->format('D'); }
else if ($diff/86400 > 7 && $diff/86400 <= 31){ return$old->format('j M'); }
else{ return $old->format('j M'); }
}
然而,即使使用这个sudo timedatectl set-timezone Africa/Nairobi
来设置我的digitalocean时区,并且在CLI上运行$ date
时获得了正确的时间,当我运行日期格式为2022-05-30 15:00:06
的函数soshDate($date)
时,我获得的时间仍然比我的本地时间晚3小时。我需要帮助来纠正这个问题。
1条答案
按热度按时间kpbwa7wx1#
我使用的一个变通方法是soshDate函数中的
$date= date('Y-m-d H:i:s', strtotime($date. ' + 3 hours'))