一、时间戳

1.19701-1-1到现在的秒数,用time()获取
2.格式化date("y-m-d h:i:s",time()),由于按国际标准,所以默认为伦敦时间
3.更改时区的方法:
    a.date("y-m-d h:i:s",time()+8*60*60);//东八区
    b.date_default_timezone_set("PRC");再用date
4.将格式化时间转换为时间戳:
    a.mktime(时,分,秒,月,日,年),年月日等数字超出范围自动转到下个周期,传参格式如下:
    int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
    b.给定规范的格式化时间,使用strtotime($time)来转换,支持很多格式(详细见手册)
    c.microtime():返回时间戳至微秒数,主要是用来测试某段脚本程序的执行所用的时间

二、实例:日历算法
注:年月日可以由get传入也可以默认当前值

    date_default_timezone_set('PRC');
    $year = isset($_GET['year']) ? $_GET['year'] : date('y');//当前年
    $month = isset($_GET['month']) ? $_GET['month'] : date('m');
    $day = isset($_GET['day']) ? $_GET['day'] : date('d');
    //当月的天数
    $days=date('t',mktime(0,0,0,$month,1,$year));
    //获取当月第一天星期几
    $firstDay=date('w',mktime(0,0,0,$month,1,$year));
    
    echo '<table border="1" width="300" align="center">';
    echo '<tr>';
    echo '<th style="background:blue">日</th>';    
    echo '<th style="background:blue">一</th>';    
    echo '<th style="background:blue">二</th>';    
    echo '<th style="background:blue">三</th>';    
    echo '<th style="background:blue">四</th>';    
    echo '<th style="background:blue">五</th>';    
    echo '<th style="background:blue">六</th>';    
    echo '</tr>';
    echo '<tr>';
    for($i=0;$i<$firstDay;$i++){
        echo '<th>&nbsp;</th>';
    }    
    $result='';
    for($j=1;$j<$days;$j++){
        $i++;
        if($j==$day){
            $result.='<th style="background:red">'.$j.'</th>';
        }else{
            $result.='<th>'.$j.'</th>';
        }
        
        if($i%7===0){
            $result.='</tr><tr>';
        }
    }    
    while($i%7!==0){
        $result.='<th>&nbsp;</th>';
        $i++;
    }
    echo $result;
    echo '</tr>';            
    echo '</table>';

1111
93 声望10 粉丝