PHP之日期时间函数回顾

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>> hot3.png

  • 目录
  • 1. 前言
  • 2. 日期时间常用函数的使用
  • 2.1如何设置时区
  • 2.1.1第一种:设置php文件
  • 2.1.2第二种:动态设置时区
  • 2.1.3第三种:Ini_set运行时设置选项
  • 2.2 date函数的应用以及常用参数解析
  • 2.2.1date()函数的使用以及常用参数介绍
  • 2.2.2输出年月日星期几
  • 2.2.3检测是否是闰年
  • 2.2.4检测本周/本天是全年第几周/第几天
  • 2.3时间戳的使用
  • 2.3.1获取当前时间戳是使用time()函数
  • 2.3.2获得某个日期的时间戳是使用mktime()函数
  • 2.3.3面试题:计算两个日期的时间差
  • 2.4 strtotime函数的使用
  • 2.5微秒及其它常用日期时间函数的使用
  • 2.6其他常用时间函数的使用
  • 2.7 H5中新增日期时间相关控件的使用
  • 2.7.1 HTML5中的新增表单控件
  • 2.7.2 jquery datetimepicker 插件的使用
  • 2.7.3jquery timer plugin插件的使用
  • 3. 总结

1.前言

PHP的日期时间是非常有趣的,当然在面试时候也经常考察,这既是基础的考验,也是对自身学习是否细致的考量,下面一起把它总结一下吧。

代码分享:https://github.com/mtdgclub/timeCase

2.日期时间常用函数的使用

2.1如何设置时区

默认是UTC,世界时间;而中国时区是PRC

2.1.1第一种:设置php文件

;第一种设置php.ini文件
[Date]
date.timezone = Europe/Pairs

2.1.2第二种:动态设置时区

/**
 * 第二种:动态设置时区
 */
echo '当前时区为:'.date_default_timezone_get().'
';//得到当前时区 date_default_timezone_set('Asia/Shanghai');//设置当前时区
echo '当前时区为:'.date_default_timezone_get().'
';

up-d4b267c8466e478fc2e9d9747e12e915b83.png

2.1.3第三种:Ini_set运行时设置选项

/**
 * 第三种:Ini_set运行时设置选项
 */
echo ini_get('date.timezone').'
';
ini_set('date.timezone','Asia/Shanghai'); echo ini_get('date.timezone').'
';

up-2da4259170c8e1fddad2344309c7dd22172.png

2.2 date函数的应用以及常用参数解析

2.2.1date()函数的使用以及常用参数介绍

format

说明

返回值

Y

4位完整的年份

例如2020

m

月份,带前导零

01-12

d

月份中第几天,有前导零的2位数字

01-31

H

小时,24小时格式,有前导零

00-23

i

有前导零的分钟数

00-59

s

秒数,有前导零

00-59

代码演示:


header('content-type:text/html;charset:utf-8');
echo date('Y-m-d H:i:s').'
'; //y表示两位的年份,n表示不带前导零的月份,j不带前导零的日期
echo date('y-n-j H:i:s');

up-9a2970740b07f2bcf15a64b75aa53465a65.png

2.2.2输出年月日星期几

//动态获得星期几,date('w');获得一周内的第几天,返回值为0-6
switch (date('w')) {
    case 0:$dataSrt='日';break;
    case 1:$dataSrt='一';break;
    case 2:$dataSrt='二';break;
    case 3:$dataSrt='三';break;
    case 4:$dataSrt='四';break;
    case 5:$dataSrt='五';break;
    case 6:$dataSrt='六';break;
    default:$dataSrt='非法日期';break;
}
echo date('Y年m月d日').' '.'星期'.$dataSrt;

up-152fa549d0efc578d109659721641f3c08f.png

2.2.3检测是否是闰年

//检测是否是闰年
//对4取余为0,对100取余不等于0或者对400取余为0
$year=date('Y');
if ($year%4==0&&($year%100!=0||$year%400==0)) {
    echo $year.'是闰年';
}else{
    echo $year.'不是闰年';
}
echo '
'; //对于检测今年是否是闰年,有个函数date('L'),是为1,否为0
if (date('L')) { echo '今年是闰年'; }else{ echo '今年不是闰年'; }

up-44da4af6000d4badf0ccb88023a6429d819.png

2.2.4检测本周/本天是全年第几周/第几天

//获得本周是全年的第几周
echo '
'.'本周是全年的第'.date('W').'周';

up-97201a4c9a3bf6ed98373593938c2423de2.png

//获得本天是全年的第几天
echo '
'.'本天是全年的第'.date('z').'天';

up-692c7b0c024e3abe33a629ada6e653359db.png

2.3时间戳的使用

时间戳:从1970年1月1日00:00:00到当前时间所经历的秒数

2.3.1获取当前时间戳是使用time()函数

2.3.2获得某个日期的时间戳是使用mktime()函数

//获得某个日期的时间戳是使用mktime()函数
//mktime(h,i,s,n,j,Y);
echo mktime(0,0,0,8,12,2016);
echo date('Y-m-d H:i:s',mktime(0,0,0,8,12,2016)),'
';
echo date('Y-m-d H:i:s',mktime(0,0,0,8,12)),'
';
echo date('Y-m-d H:i:s',mktime(0,0,0,8)),'
';
echo date('Y-m-d H:i:s',mktime(0,0,0)),'
';
echo date('Y-m-d H:i:s',mktime(0,0)),'
';
echo date('Y-m-d H:i:s',mktime(0)),'
';

PHP之日期时间函数回顾_第1张图片

2.3.3面试题:计算两个日期的时间差

//计算我的年龄
//出生日期
$birth=mktime(0,0,0,10,25,1996);
//获得当前时间
$time=time();
$age=floor(($time-$birth)/(24*3600*365));

up-21ba0adc0d89e5d60b6269f50ccdd106332.png

2.4 strtotime函数的使用


header('content-type:text/html;charset:utf-8');
echo time(),'
';
echo strtotime('now'),'
';
echo date('Y-m-d H:i:s',time()),'
';
echo date('Y-m-d H:i:s',time()+24*3600),'
';
echo date('Y-m-d H:i:s',strtotime('+1 day')),'
';
echo date('Y-m-d H:i:s',strtotime('-1 day')),'
';
echo date('Y-m-d H:i:s',strtotime('+5 days')),'
';
echo date('Y-m-d H:i:s',strtotime('+1 month')),'
';
echo date('Y-m-d H:i:s',strtotime('+2 years 3 months 12 days')),'
';
echo date('Y-m-d H:i:s',strtotime('last Monday')),'
';

PHP之日期时间函数回顾_第2张图片

2.5微秒及其它常用日期时间函数的使用 

通过microtime()获取微秒

2.5.1通过微秒实现计算PHP的执行时间


header('content-type:text/html;charset:utf-8');
echo microtime(),'
';
echo time(),'
';
echo microtime(true),'
';
echo '
'; $start = microtime(
true); for($i=1;$i<=10000;$i++){ $arr[]=$i; } $end = microtime(true); echo '程序执行时间为:',round($end-$start,4);

PHP之日期时间函数回顾_第3张图片

2.6其他常用时间函数的使用

  • getdate()//得到日期时间像个信息
  • gettimeofday()//得到当前的日期时间
  • checkdate()//验证日期的合法性,是为1,否为0

2.7 H5中新增日期时间相关控件的使用

2.7.1 HTML5中的新增表单控件




    
    HTML5中的新增表单控件


H5新增表单日期时间相关的控件







PHP之日期时间函数回顾_第4张图片

2.7.2 jquery datetimepicker 插件的使用




    
    jquery datetimepicker 插件的使用
    


    

还可以对其设置初始日期值,如下图所示


    

PHP之日期时间函数回顾_第5张图片

2.7.3jquery timer plugin插件的使用




    
    jquery timer plugin插件的使用
    
    
    


Days Hours Minutes Seconds

up-5314743df9480d6137c6aa5761aa1e95d03.png

3.总结

通过上述总结,我们基本掌握了php日期时区的多种设置方法,date()函数的应用及其设计的一些常见面试题,time()函数、mktime()函数、strtotime()函数获取不同时间时间戳,microtime()函数获取微秒,并简单地介绍了一些关于时间的JS控件的应用,希望通过本次回顾和学习,更好地掌握关于时间的函数应用。

你可能感兴趣的:(PHP之日期时间函数回顾)