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


Posted in PHP onSeptember 11, 2016

本文实例讲述了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 日期加减的类,很不错
Oct 10 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 #PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 #PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 #PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 #PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 #PHP
PHP入门教程之数学运算技巧总结
Sep 11 #PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 #PHP
You might like
详解PHP中mb_strpos的使用
2018/02/04 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
php数组和链表的区别总结
2019/09/20 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python中datetime模块参考手册
2017/01/13 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python logging.info在终端没输出的解决
2020/05/12 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
大学生个人自荐信
2014/02/24 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书