0

時間を丸められた時間に変換したい。
したがって、間隔を秒単位で使用したいだけです。15 分の 1 時間と 1 時間のフルタイムに適しています。しかし、何日もの間ではありません。それからめちゃくちゃです。しかし、私は理由を理解することはできません

これは私の機能です:

function formatToMySQLTime($sTime,$iInterval){
    switch ($iInterval){
        case 1: // 15 minutes;
            $iDivider = 15 * 60;
            break;
        case 2: // 1 hour
            $iDivider = 60 * 60;
            break;
        case 3: // 1 day
            $iDivider = 60 * 60 * 24;
            break;
    }    
    $iRemainder = strtotime($sTime) % $iDivider;
    $iRoundTime = strtotime($sTime) - $iRemainder;    
    $sTime = date('Y-m-d H:i:s', $iRoundTime);
    return $sTime;
}

出力は次のとおりです。

echo formatToMySQLTime('2013-10-21 03:23:00',1);
2013-10-21 03:15:00

echo formatToMySQLTime('2013-10-21 03:23:00',2);
2013-10-21 03:00:00

echo formatToMySQLTime('2013-10-21 03:23:00',3);
2013-10-21 02:00:00

3 番目の出力は間違っています2013-10-21 00:00:00。私の間違いは何ですか?

4

2 に答える 2