php 设置DigitalOcean服务器时区无效

uidvcgyl  于 2023-02-28  发布在  PHP
关注(0)|答案(1)|浏览(130)

我住在肯尼亚的内罗毕。我的网站的时间在我本地的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小时。我需要帮助来纠正这个问题。

kpbwa7wx

kpbwa7wx1#

我使用的一个变通方法是soshDate函数中的$date= date('Y-m-d H:i:s', strtotime($date. ' + 3 hours'))

相关问题