美文网首页
8.PHP的日期和时间

8.PHP的日期和时间

作者: dptms | 来源:发表于2017-02-15 11:04 被阅读524次

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"));                   
    echo date("Y-m-d", strtotime("8 may 2012"));     
    echo date("Y-m-d", strtotime("+1 day"));               
    echo date("Y-m-d", strtotime("last monday"));       
    $now = strtotime("now");                           //当前时间 
    $endtime = strtotime("2017-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}秒";
?>

在PHP中获取日期和时间

  • getdate -- 取得日期/时间信息
格式:array getdate ( [int timestamp] ) 

返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:

Paste_Image.png

日期和时间的格式化输出

  • 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的默认时区有两种方式:

  • 修php.ini配置文件:
    date.timezone = Etc/GMT+8

  • date_default_timezone_set( ): -- 设定用于一个脚本中所有日期时间函数的默认时区 。
    如:date_default_timezone_set(“PRC”); //中国时区。

  • date_default_timezone_get( ): -- 获取当前时区

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

  • microtime -- 返回当前 Unix 时间戳和微秒数
格式:mixed microtime ( [bool get_as_float] ) 

如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。

Have a try

  1. 代码:输出“2011-5-19 14:07”这个日期的时间戳。
  2. 代码:将“1305786147”时间戳格式化成”年-月-日 时:分:秒”后输出。
  3. 代码:求出”2011-10-01”是星期几?
  4. 代码:输出两天前这个时候的日期(年-月-日 时:分:秒);
  5. 代码:计算并输出1000000次字符串比较和数字比较的耗时。
  6. 写一个万年历试一试吧

相关文章

  • 8.PHP的日期和时间

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

  • 命名空间的嵌套

  • 时间和日期

    时间和日期 time 包为我们提供了一个数据类型 time.Time(作为值使用)以及显示和测量时间和日期的功能函...

  • 日期和时间

    日期和时间 必须 使用 Carbon 来处理日期和时间相关的操作。

  • 日期和时间

    PHP日期和时间之取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间...

  • 日期和时间

  • 日期和时间

    Java API中关于日期和时间,有三个主要类 Data:表示时刻,即绝对时间,与年月日无关。Calendar:表...

  • 日期和时间

    Date和time对象允许您及时存储对特定实例的引用。您可以使用日期和时间对象来执行计算和比较,以解决日期和时间计...

  • 日期和时间

    1.获取当前日期 2.2021-09-06T10:32:07.000+0000 格式转换为 2021-09-06 ...

  • 时间和日期

网友评论

      本文标题:8.PHP的日期和时间

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