PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)

5年以前  |  阅读数:399 次  |  编程语言:PHP 

本文实例讲述了PHP日期与时间操作技巧。分享给大家供大家参考,具体如下:

Demo1.php


    <?php
     //验证时间
     //checkdate() 1.月份 2.日 3.年
     //checkdate() 判断这个日期是否是合法的日期
     //不合法的日期,试一试
     if(checkdate(7,16,2010)){
      echo '这个日期是合法有效的';
     }else{
      echo '这个日期是非法的。';
     }
    ?>

Demo2.php


    <?php
     //date -- 格式化一个本地时间/日期
     //date(), 彻底研究一下
     //date() 可以存放两个参数,第一参数是日期和时间的格式化,[第二参数是时间戳]
     //Y 表示四位数的年份, y表示二位数的年份
     //M 表示英文的月份缩写,m 表示阿拉伯数字的月份
     //D 表示英文下的星期几缩写,d 表示阿拉伯数字的日
     //第一个参数的格式化可以放一些无关紧要的字符串
     //只要无关紧要的字符串不再 format 的目录里,就不会被识别
     //echo date('现在的日期是:Y-m-d'); //现在的日期是:2015-04-20
     //时分秒 = H 表示24小时制的小时,
     //明明是 19 ,为什么显示 11 点呢,东八区,差 8 个小时
     //现在没有经过任何设置,所以时间在默认时区上
     //echo date('现在的日期是:Y-m-d H:i:s');
     //重点是年月日,时分秒
     echo date('r');
     echo date('现在的日期是:Y-m-d H:i:sa');
    ?>

Demo3.php


    <?php
     //取得当前的时间,返回一个数组
     //"sec" - 自 Unix 纪元起的秒数
     //"usec" - 微秒数
     //"minuteswest" - 格林威治向西的分钟数
     //"dsttime" - 夏令时修正的类型
     //print_r(gettimeofday());
     //第一数组的元素就是时间戳
     //gettimeofday() 就是取得的当前时间的时间戳
     //$a = gettimeofday();
     //sec 取得当前时间的时间戳
     //转换成人可以看得懂的时间
     //第二个参数,对于本例来讲,放与不放,是一样的。
     //echo date('Y-m-d H:i:s',$a['sec']);
     print_r(gettimeofday(0));
     echo gettimeofday(1);
    ?>

Demo4.php


    <?php
     //将时间戳转换成人可以看的懂的时间
     //date() 函数的第二个参数就是时间戳
     //如果第二个参数省略了,那么就返回当前时间
     //如果第二个参数没有省略,那么就返回那个时间戳的时间
     echo date('Y-m-d H:i:s',24554457865);
    ?>

Demo5.php


    <?php
     //getdate() 也可以转换时间戳
     //print_r(getdate());
     //Array ( [seconds] => 26 [minutes] => 34 [hours] => 10 [mday] => 20 [wday] => 1 [mon] => 4
     //[year] => 2015 [yday] => 109 [weekday] => Monday [month] => April [0] => 1429526066 )
     $t = getdate();
     echo $t['year'];
     //传递一个时间戳
     print_r(getdate(1029526066));
    ?>

Demo6.php


    <?php
     //直接获取当前时间戳
     //echo time();//1429526328
     //这个 time() 可以调整时间
     //大家可以发现 time() 很有用处,可以过去现在和将来
     echo date('Y-m-d H:i:s',time()+60*60*8);
    ?>

Demo7.php


    <?php
     //获取特定指定时间的时间戳
     //这是当前的时间戳
     //echo time();
     //我要取得 2008-08-08 08:08:08
     $beijing2008 = mktime(8,8,8,8,8,2008);
     echo date('Y-m-d H:i:s',$beijing2008);
    ?>

Demo8.php


    <?php
     //使用时间戳计算时间差
     $now = time();//当前的时间戳
     $wnow = mktime(0,0,0,8,16,2016);
     //两个时间戳相减可以得到差秒
     echo round(($wnow - $now)/60/60,2).'相差这几个小时';
    ?>

Demo9.php


    <?php
     //将人可读的时间,字符串形式,转换成时间戳
     $a = strtotime('2010-7-16 15:15:15')-strtotime('2010-7-16 15:14:15');
     if($a >= 60){
      echo '请这位先生休息一会。';
     }else{
      echo $a;
     }
    ?>

Demo10.php


    <?php
     //获取当前文件的修改时间戳
     echo date('Y-m-d H:i:s',getlastmod());
    ?>

Demo11.php


    <?php
     //配置系统环境变量
     echo date('Y-m-d H:i:s');
     echo '<br/>';
     //我开始设置时区
     putenv('Tz=Asia/Shanghai');
     echo date('Y-m-d H:i:s');
    ?>

Demo12.php


    <?php
     //putenv('Tz=Asia/Shanghai');
     //获取当前时区
     echo date_default_timezone_get();
     echo '<br/>';
     //开始配置默认时区
     date_default_timezone_set('Asia/Shanghai');
     echo date('Y-m-d H:i:s') ;
     echo '<br/>';
     echo date_default_timezone_get();
    ?>

Demo13.php


    <?php
     date_default_timezone_set('Asia/Shanghai');
     //"tm_sec" - 秒数
     //"tm_min" - 分钟数
     //"tm_hour" - 小时
     //"tm_mday" - 月份中的第几日
     //"tm_mon" - 年份中的第几个月,从 0 开始表示一月
     //"tm_year" - 年份,从 1900 开始
     //"tm_wday" - 星期中的第几天
     //"tm_yday" - 一年中的第几天
     //"tm_isdst" - 夏令时当前是否生效
     print_r(localtime(time(),true));
     //Array ( [tm_sec] => 37 [tm_min] => 15 [tm_hour] => 19
     //[tm_mday] => 20 [tm_mon] => 3 [tm_year] => 115
     //[tm_wday] => 1 [tm_yday] => 109 [tm_isdst] => 0 )
    ?>

Demo14.php


    <?php
     //返回时间戳和微秒数
     //怎么计算页面运行加载时间
     //页面打开的时候获取一个时间
     //页面结束的时候获取一个时间
     //用结束的时间减去打开的时间,那么就是运行时间
    // list($a,$b)=explode(' ',microtime());
    // echo $b;
     function fn(){
      list($a,$b)=explode(' ',microtime());
      return $a+$b; //返回出精确的秒数
     }
     //在页面打开的时候,获取一个时间
     $start_time = fn();
     for($i=0;$i<10000000;$i++){
      //
     }
     //页面结束的时候,获取一个时间
     $end_time = fn();
     echo round(($end_time - $start_time),4);
    ?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例