美文网首页
11.1.2 PHP中应用日期和时间2

11.1.2 PHP中应用日期和时间2

作者: 曹渊说创业 | 来源:发表于2016-12-22 08:33 被阅读80次

    11.1.2 PHP中应用日期和时间2

    Unix 时间戳 :

    自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .

    相关函数:

    time( ): 函数返回一个当前系统的时间戳
    mktime( ): 取得一个日期的 Unix 时间戳
    格式:int mktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
    注意:is_dst参数表示是否为夏时制,PHP5.10后此参数已废除。
    strtotime( ):将任何英文文本的日期时间描述解析为 Unix 时间戳
    格式:int strtotime ( string $time [, int $now ] )

    <?php   
        echo date("Y-m-d", strtotime("now"));                   //输出: 2012-04-05
        echo date("Y-m-d", strtotime("8 may 2012"));       //输出: 2012-05-08
        echo date("Y-m-d", strtotime("+1 day"));               //输出: 2012-04-06
        echo date("Y-m-d", strtotime("last monday"));       //输出: 2012-04-02
        $now = strtotime("now");                           //当前时间 
        $endtime = strtotime("2014-08-18 08:08:08"); //设定毕业时间,转成时间戳
        
        $second = $endtime - $now;                  //获取毕业时间到现在时间的时间戳(秒数)
        $year = floor($second/3600/24/365);     //从这个时间戳中换算出年头数
        $temp = $second - $year*365*24*3600;//从时间戳中去掉整年的秒数,就剩下月份的秒数
        $month = floor($temp/3600/24/30);       //从这个时间戳中换算出月数
        $temp = $temp - $month*30*24*3600;  //从时间戳中去掉整月的秒数,就剩下天的秒数
        $day = floor($temp/3600/24);                //从这个时间戳中换算出剩余的天数
        
        $temp = $temp - $day*3600*24;           //从时间戳中去掉整天的秒数,就剩下小时的秒数
        $hour = floor($temp/3600);                   //从这个时间戳中换算出剩余的小时数
        $temp = $temp - $hour*3600;               //从时间戳中去掉整小时的秒数,就剩下分的秒数
        $minute = floor($temp/60);                    //从这个时间戳中换算出剩余的分数
        $second1 = $temp - $minute*60;          //最后就只有剩余的秒数了
        
        echo "距离培训毕业还有{$year}年{$month}月{$day}天{$hour}小时{$minute}分{$second1}秒";
    

    日期和时间的格式化输出

    date -- 格式化一个本地时间/日期
    格式:string date ( string format [, int timestamp] )
    返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()(当前时间戳)。
    例如:
    echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28
    常用参数:
    Y:四位数年 m:月01-12 n:月1-12 d:天01-31 j:天1-31
    H:时24时制 h:小时12制 i:分钟00-59 s:秒00-59 w:星期几0-6
    A:上午AM或下午PM a:上午am或下午pm。

    修改PHP的默认时区

    修改PHP的默认时区有两种方式:
    1、修php.ini配置文件:
    date.timezone = Etc/GMT+8
    2、date_default_timezone_set( ): -- 设定用于一个脚本中所有日期时间函数的默认时区 。
    如:date_default_timezone_set(“PRC”); //中国时区。
    date_default_timezone_get( ): -- 获取当前时区

    使用微秒计算PHP脚本执行时间

    microtime -- 返回当前 Unix 时间戳和微秒数
    格式:mixed microtime ( [bool get_as_float] )
    microtime() 当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。
    如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
    如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。

    1.php

    <?php
    /* 时间戳 
     *
     * 1. 是一个整数
     * 2. 1970-1-1 到现在的秒数  1213212121
     *
     * 2014-02-14 11:11:11
     *
     * 02/14/2014 11:11:11
     *
     *
     */
        date_default_timezone_set("PRC");
    
        $y = 1981;
        $m = 11;
        $d = 5;
    
    
        $t = mktime(0, 0, 0,  $m, $d, $y);
    
        $dtime = time();
    
    
        echo floor(($dtime - $t)/60/60/24);
    

    2.php

     <?php
    /* 时间戳 
     *
     * 1. 是一个整数
     * 2. 1970-1-1 到现在的秒数  1213212121
     *
     * 2014-02-14 11:11:11
     *
     * 02/14/2014 11:11:11
     *
     *
     */
        date_default_timezone_set("PRC");
    
        $y = 1981;
        $m = 11;
        $d = 5;
    
    
        $t = mktime(0, 0, 0,  30, 45, $y);
    
        echo date("Y-m-d H:i:s", $t);
    

    3.php

    <?php
    /* 时间戳 
     *
     * 1. 是一个整数
     * 2. 1970-1-1 到现在的秒数  1213212121
     *
     * 2014-02-14 11:11:11
     *
     * 02/14/2014 11:11:11
     *
     *
     */
        date_default_timezone_set("PRC");
        
        $a = "2014-11-12 11:11:11";
        $b = "2015-3-4";
    
        echo floor((strtotime($b)-strtotime($a))/(24*60*60));
    

    test.php

    <?php
    /* 时间戳 
     *
     * 1. 是一个整数
     * 2. 1970-1-1 到现在的秒数  1213212121
     *
     * 2014-02-14 11:11:11
     *
     * 02/14/2014 11:11:11
     *
     *
     */
        date_default_timezone_set("PRC");
        
        
        $start =  microtime(true);
    
        for($i=0; $i<100000; $i++){
            
        }
    
        $end = microtime(true);
    
    
        echo $end-$start;
    

    相关文章

      网友评论

          本文标题:11.1.2 PHP中应用日期和时间2

          本文链接:https://www.haomeiwen.com/subject/qrucvttx.html