#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>
- 目录
- 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().'';
2.1.3第三种:Ini_set运行时设置选项
/**
* 第三种:Ini_set运行时设置选项
*/
echo ini_get('date.timezone').'
';
ini_set('date.timezone','Asia/Shanghai');
echo ini_get('date.timezone').'
';
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');
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;
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 '今年不是闰年';
}
2.2.4检测本周/本天是全年第几周/第几天
//获得本周是全年的第几周
echo '
'.'本周是全年的第'.date('W').'周';
//获得本天是全年的第几天
echo '
'.'本天是全年的第'.date('z').'天';
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)),'
';
2.3.3面试题:计算两个日期的时间差
//计算我的年龄
//出生日期
$birth=mktime(0,0,0,10,25,1996);
//获得当前时间
$time=time();
$age=floor(($time-$birth)/(24*3600*365));
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')),'
';
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);
2.6其他常用时间函数的使用
- getdate()//得到日期时间像个信息
- gettimeofday()//得到当前的日期时间
- checkdate()//验证日期的合法性,是为1,否为0
2.7 H5中新增日期时间相关控件的使用
2.7.1 HTML5中的新增表单控件
HTML5中的新增表单控件
H5新增表单日期时间相关的控件
2.7.2 jquery datetimepicker 插件的使用
jquery datetimepicker 插件的使用
还可以对其设置初始日期值,如下图所示
2.7.3jquery timer plugin插件的使用
jquery timer plugin插件的使用
Days
Hours
Minutes
Seconds
3.总结
通过上述总结,我们基本掌握了php日期时区的多种设置方法,date()函数的应用及其设计的一些常见面试题,time()函数、mktime()函数、strtotime()函数获取不同时间时间戳,microtime()函数获取微秒,并简单地介绍了一些关于时间的JS控件的应用,希望通过本次回顾和学习,更好地掌握关于时间的函数应用。