使用PHP将时间戳四舍五入到最近的时间

例如,如果要创建“四舍五入”的时间戳,请精确到15分钟,以此为参考:

function roundTime($amount, $units = 'm', $time = null)
{
    if (is_null($time)) {
        $time = time();
    }
 
    if ($amount == 0) {
        $amount = 1;
    }
 
    switch ($units){ 
        case 'm':        
            $roundBy = 60 * $amount;
            break;
        case 'h':
            $time = $time + 60 * 60 * $amount;        
            $roundBy = 60 * 60 * $amount;
            break;
        case 'd':
            $time = $time + 60 * 60 * 24 * $amount;
            $roundBy = 60 * 60 * 24 * $amount;
            break;
    }
 
    return round($time / $roundBy) * $roundBy;
}
 
echo "\n";
echo date('r', roundTime(15, 'm'));
echo "\n";
echo date('r', roundTime(2, 'h'));
echo "\n";
echo date('r', roundTime(3, 'd'));
echo "\n";
echo date('r', roundTime(-3, 'd'));
echo "\n";