[PHP-users 26351] Re: 1970以前のmktime(Re: PHP4.4.0 での mktime)

tommy tommy @ asobicreate.com
2005年 8月 2日 (火) 19:37:00 JST


富沢です。先ほど送った1970年以前用のmktimeはうるう年の時におかしく
なるみたいですので、改訂版を送っておきます。

define(SECOND_DAY,60 * 60 * 24);
function smktime($hour = 0,$minute = 0,$second = 0,$month = 0,$day = 0,$year = 0,$dst = 0){
    if ($year >= 1970 || mktime(0,0,0,1,1,1969) == -31568400){
        $ret = mktime($hour,$minute,$second,$month,$day,$year,$dst);
    }else{
        $base = 1972 + ($year % 4);
        $_y = $base - $year;
        $ret = mktime($hour,$minute,$second,$month,$day,$base);
        $ret = $ret - ($_y * SECOND_DAY * 365) - (ceil($_y / 4) * SECOND_DAY);
    }
    return $ret;
}




PHP-users メーリングリストの案内