zoukankan      html  css  js  c++  java
  • 时间日期函数

    date_default_timezone_get():得到系统默认时区

    date_default_timezone_set($str):设置系统默认时区,中国设置:"PRC"、"Asia/Shanghai"、"Asia/Chongqing"

    time():得到当前时间戳,返回自1970年1月1日00:00:00到当前的秒数

    microtime() / microtime(true):得到当前微秒数(微秒数+时间戳),加了true参数则结果将以浮点数返回

    date($format ,$time):格式化时间戳,输出为字符串

      $time:可选参数,如果没有指定时间戳,则默认使用本地当前时间戳time()

      $format参数可用格式字符串:

        d  月份中的第几天,有前导0的两位数字    01~31 

        D  星期中的第几天,3个字母                Mon~Sun

        j   月份中的第几天,没有前导0             1~31

        l(L的小写)  星期几,完整的文本          Sunday~Saturday

        N  ISO-8601数字表示星期中的第几天         1(星期一)~7(星期天)

        S  每月天数后面的英文后缀,2个字符        st、nd、rd或th,可和j一起使用

        w  星期中的第几天,数字表示           0(星期天)~6(星期六)

        z  年份中的第几天              0~365

        W   ISO-8601年份中的第几周,每周从星期一开始   如:42(当年的第42周)

        F  月份,完整的文本格式             January~December

        m  数字表示的月份,有前导0            01~12

        M  3个字母缩写表示的月份          Jan~Dec

        n  数字表示的月份,没有前导0         1~12

        t   给定月份应有的天数            28~31

        L  是否为闰年                如果是闰年为1,否则为0

        o  ISO-8601年份数字,和Y值相同       1999

        Y  4位数字完整表示的年份           1999

        y  2位数字表示的年份              99

        a  小写的上午和下午值            am或pm

        A  大写的上午和下午值            AM或PM

        B  Swatch Internet标准时           000到999

        g  小时,12小时格式,无前导0         1~12

        G  小时,24小时格式,无前导0        0~23

        h  小时,12小时格式,有前导0         01~12

        H  小时,24小时格式,有前导0         00~23

        i    分钟,有前导0               00~59

        s   秒数,有前导0               00~59

        e  时区标识                 如UTC、GMT

        I(i大写)  是否为夏令时              如果是夏令时为1,否则为0

        O  与格林威治时间相差的小时数        如+0200

        P  与格林威治时间(GMT)的差别,小时和分钟间有冒号  如+02:00

        T  本机所在的时区              如EST、MDT

        Z  时差偏移量的秒数,UTC西边的时区偏移量总是负的,UTC东边的时区偏移量总是正的  -43200~43200

        c  ISO-8601格式的日期            2004-02-12T15:19:21+00:00

        r  RFC822格式的日期              Thu,21 Dec 2000 16:01:07 +0200

        U  从Unix纪元(January 1 1970 00:00:00 GMT)开始至今的秒数  time()

      例:

        echo "当前时间戳:",time(),"<br>";

        echo "当前日期时间:",date("Y-m-d H:i:s",time()),"<br>";

    mktime($hour_H ,$minute_i ,$second_s ,$month_n ,$day_j ,$year_Y):将时间日期转为Unix时间戳输出,时间戳是一个长整数包含了从Unix纪元到当前的秒数,该函数的参数可以从右向左省略,省略的参数会被自动设置成本地的时间日期的当前值

    strtotime($strtime ,$time):将时间日期字符串解析为Unix时间戳输出,失败则返回false

      $time:可选参数,如果没有指定时间戳,则默认使用本地当前时间戳time()

      例1:

        echo "当前日期时间戳:",strtotime ( "now" ),"<br>";

        echo "2018年1月1号12:00:00的时间戳:",strtotime ( "2018-01-01 12:00:00" ),"<br>";

        echo "2000年9月10号的时间戳:",strtotime ( "10 September 2000" ),"<br>";

        echo "明天的这时刻:",date("Y-m-d H:i:s",strtotime( "+1 day" )),"<br>";

        echo "昨天的这时刻:",date("Y-m-d H:i:s",strtotime( "-1 day" )),"<br>";

        echo "下周的这时刻:",date("Y-m-d H:i:s",strtotime( "+1 week" )),"<br>";

        echo "上周的这时刻:",date("Y-m-d H:i:s",strtotime( "-1 week" )),"<br>";

        echo "一周零两天四小时两秒后:",date("Y-m-d H:i:s",strtotime( "+1 week 2 days 4 hours 2 seconds" )),"<br>";

        echo "向上最近的一个周一:",date("Y-m-d",strtotime( "last Monday" )),"<br>";

        echo "向下最近的一个周四:",date("Y-m-d",strtotime( "next Thursday" )),"<br>";

        echo "一个月后:",date("Y-m-d",strtotime( "+1 month" )),"<br>";

        echo "一个月前:",date("Y-m-d",strtotime( "last month" )),"<br>";

        echo "十年后:",date("Y-m-d",strtotime( "+10 year" )),"<br>";

      例2:

        $date="2018-01-31 12:30:59";

        echo "指定日期的一个月前的相同时刻:",date("Y-m-d H:i:s",strtotime("-1 month",strtotime($date)));

        

    注意:32位系统中,有效的时间戳范围是格林威治时间1970年01月01日到2038年01月19日03:14:07,复合32位中一个整型变量所能保存的最大值,超过这个时间后整型数值将会溢出,可以使用DateTime类来解决这个问题:

    例:

      $date="2040-01-01 12:00:00";

      $dt=new DateTime($date);

      echo $dt->format('U');  // 2209032000  转成Unix时间戳

      echo $dt->format('Y-m-d H:i:s');  // 2040-01-01 12:00:00  格式化输出时间日期

      //将Unix时间戳转为datetime

      $dt=new DateTime('@2209032000');  

      echo $dt->format('Y-m-d H:i:s');  // 2040-01-01 12:00:00

      //使用DateTime类的setTimezone方法设置时区

      $dt=new DateTime('@1420029030');  

      $tz=timezone_open('Asia/HONG_KONG');  

      $dt->setTimezone($tz);  

      echo $dt->format('Y-m-d H:i:s'); // 2014-12-31 20:30:30

  • 相关阅读:
    windows7 下的日期没有internet时间的选项卡
    Oracle SQL性能优化的40条军规
    BOS中定区关联客户
    远程调用——hessian使用入门
    使用apache POI解析Excel文件
    jQuery OCUpload ——> 一键上传插件
    SSH——增删改的实现二
    SSH——增删改的实现一
    SSH——基于datagrid实现分页查询
    (五)EasyUI使用——datagrid数据表格
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/9030018.html
Copyright © 2011-2022 走看看