美文网首页
PHP基础 —— 日期与时间

PHP基础 —— 日期与时间

作者: WhiteStruggle | 来源:发表于2020-07-18 08:37 被阅读0次

    日期与时间

    PHP文档 : 日期与时间

    设置时区

    默认时区是UTC

    文档中的 时区列表,使用时进行参照

    设置时区

    date_default_timezone_set ( string $timezone_identifier ) : bool
    
    $timezone_identifier 表示要设置的时区
    

    设定用于一个脚本中所有日期时间函数的默认时区

    如果 timezone_identifier 参数无效则返回 FALSE,否则返回 TRUE。

        <?php
            echo date_default_timezone_set('Asia/Tbilisi');//1
        ?>
    

    获取时区

    date_default_timezone_get ( void ) : string
    

    获取顺序,没有就向下一层查找:

    1. date_default_timezone_set()函数设置的时区
    2. PHP5.40之前: TZ 环境变量
    3. date.timezone配置选项
    4. PHP5.40之前:查询操作系统主机(前提系统支持并允许)
    5. 若都不行,会返回 UTC 的默认时区
        <?php
            echo date_default_timezone_get();//Asia/Shanghai
        ?>
    //电脑默认的时区:Asia/Shanghai
    

    获取当前Unix 是时间戳

    Unix 时间戳 :
    从Unix纪元(格林时间:1970年1月1日00时00分00秒),开始到当前时间的秒数

    time ( void ) : int —— 返回当前的 Unix 时间戳 
    
        <?php
            echo time();//1586345812  现在是时间2020.4.8-19:37
        ?>
    

    获取指定时间的Unix时间戳

    
    function mktime(
        $hour = null,
        $minute = null,
        $second = null,
        $month = null,
        $day = null,
        $year = null,
        $is_dst = -1
    ) { }
    
    mktime( $hour , $minute, $second , $month , $day , $year , $is_dst = -1);
    
    小时数,分钟数,描述,月份,天数,年份
    
    
    $is_dst —— 本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。
            自 PHP 5.1.0 起,本参数已被废弃
            PHP 7.0.0 起,此参数已经被移除。
    

    mktime() 根据给出的参数返回 Unix 时间戳。如果参数非法,本函数返回 false(在 PHP 5.1 之前返回 -1)。

        <?php
            echo mktime(0,0,0,5,6,2000,1);//957542400
        ?>
    

    从Unix时间戳切刀时间日期信息

    data( )

    date ( string $format ,[int $timestamp ] )  — 格式化一个本地时间/日期
    
    $timestamp 如果没有给出时间戳则使用本地当前时间,是可选的,默认值为 time()。
    

    返回值:string

    format字符 说明 返回值
    d 月份的第几天,有前导零 01到31
    j 月份的第几天,没有前导零 1到31
    l(L的小写) 星期几,完整英文格式 sunday到Saturday
    D 星期的第几天,文本,3个字母 Mon到Sun
    w 星期中的第几天,数字表示 0(星期日)到6(星期六)
    N ISO-8601 格式数字表示的星期中的第几天 1(星期一)到 7 (星期日)
    S 每月天数后面的英文后缀,2个字符 st,nd,rd 或者 th
    z 年份中的第几天 0 到 365
        <?php
            echo date("d")."<br>";//08 —— 8号
            echo date("j")."<br>";//8 —— 8号
            echo date("l")."<br>";//Wednesday —— 星期三 
            echo date("D")."<br>";//Wed —— 星期三 
            echo date("w")."<br>";//3 —— 星期三 
            echo date("N")."<br>";//3 —— 星期三 
            echo date("S")."<br>";//th
            echo date("z")."<br>";//98 —— 全年的第98天
        ?>
    
    -- --
    F 月份完整格式 January到December
    m 数字表示学分,有前导零 01到12
    M 三个字母缩写的月份 Jan到Dec
    n 数字表示的月份,没有前导零 1到12
    t 指定月份有多少天 28到31
        <?php
          echo date("F")."<br>";//April —— 四月
          echo date("m")."<br>";//04 —— 四月
          echo date("M")."<br>";//Apr —— 四月
          echo date("n")."<br>";//4 —— 四月
          echo date("t")."<br>";//30 —— 本月的天数
        ?>
    
    -- --
    L 是否为闰年 是闰年为1,否则为0
    o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。 如:2000
    Y 4位数字完整表示年份 如:2000
    y 2位数字表示年份 如:00
        <?php
            echo date("L")."<br>";//1 —— 是否为闰年,是闰年
            echo date("o")."<br>";//2020 —— 今年年份
            echo date("Y")."<br>";//2020 —— 今年年份
            echo date("y")."<br>";//20 —— 今年年份,两位
        ?>
    
    时间 -- --
    a 小写的上午和下午值 am 或 pm
    A 大写的上午和下午值 AM 或 PM
    B Swatch Internet 标准时 000 到 999
    g 小时,12 小时格式,没有前导零 1 到 12
    G 小时,24 小时格式,没有前导零 0 到 23
    h 小时,12 小时格式,有前导零 01 到 12
    H 小时,24 小时格式,有前导零 00 到 23
    i 有前导零的分钟数 00 到 59>
    s 秒数,有前导零 00 到 59>
    u 需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 如: 654321
        <?php
            echo date("a")."<br>";//pm —— 上下午,小写字母
            echo date("A")."<br>";//PM —— 上下午,大写字母
            echo date("B")."<br>";//572 —— 标准时
            echo date("g")."<br>";//8 —— 12小时制,八点
            echo date("G")."<br>";//20 —— 24小时制,八点
            echo date("h")."<br>";//08 —— 12小时制,八点,有前导零
            echo date("H")."<br>";//20 —— 24小时制,八点,有前导零
            echo date("i")."<br>";//44 —— 分钟数,有前导零
            echo date("s")."<br>";//36 —— 秒 ,有前导零
            echo date("u")."<br>";//00000
        ?>
    

    时间格式

    例如:2000/1/1-8:05:02

    date("Y/n/j-G:i:s");
    

    例如:2000 01 01 08:05:02

    date("Y m d H:i:s");
    

    例如:8:00pm

    date("g:ia");
    

    例如:Mon 2th

     date("M jS");
    

    获取微秒数

    microtime([$get_as_float]); 
    $get_as_float 是 bool值,true是用浮点数格式
    

    返回当前 Unix 时间戳和微秒数

    如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分,字符串的两部分都是以秒为单位返回的。

        <?php
            echo microtime();//0.73614000 1586351237
        ?>
    

    round(value,length) —— 小数进行四舍五入

    length 表示 小数点个数

    获取本地时间

    localtime(time(),[is_ass]);
    
    time() —— Unix 时间戳
    is_ass —— 表示 返回数组的索引,true使用特殊索引,false使用数字索引,不设置,默认false
    
    特殊索引:
        "tm_sec" - 秒数, 0 到 59
        "tm_min" - 分钟数, 0 到 59
        "tm_hour" - 小时, 0 到 23
        "tm_mday" - 月份中的第几日, 1 到 31
        "tm_mon" - 年份中的第几个月, 0 (Jan) 到 11 (Dec)
        "tm_year" - 年份,从 1900 开始
        "tm_wday" - 星期中的第几天, 0 (Sun) 到 6 (Sat)
        "tm_yday" - 一年中的第几天, 0 到 365
        "tm_isdst" - 夏令时当前是否生效? 如果是生效的是正数, 0 代表未生效,负数代表未知。
    
        <?php
            $localtime1 = localtime();
            $localtime2 = localtime(time(),true);
            print_r($localtime1);//Array ( [0] => 42 [1] => 17 [2] => 21 [3] => 8 [4] => 3 [5] => 120 [6] => 3 [7] => 98 [8] => 0 )
            echo "<br>";
            print_r($localtime2);//Array ( [tm_sec] => 42 [tm_min] => 17 [tm_hour] => 21 [tm_mday] => 8 [tm_mon] => 3 [tm_year] => 120 [tm_wday] => 3 [tm_yday] => 98 [tm_isdst] => 0 )
        ?>
    

    相关文章

      网友评论

          本文标题:PHP基础 —— 日期与时间

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