11.日期和时间

时间:2021-08-16 21:26:17

1、验证时间

checkdate(月,日,年)

参数:3个参数(月、日、年

作用:(1)该函数用于验证时间,

      (2)判断日期是否合法

返回值:true(1)、false(0)

 

<?php
if(checkdate(2,30,2017)){
echo '不合法';
}
else{
echo '合法';
}
?>


2、时间戳转化

(1)date(string format,[int timestramp])[最重要的函数]

参数:第一个参数为格式化时间和日期,第二个参数为时间戳(第二个参数可省略)

作用:该函数用于格式化本地时间和日期

返回值:字符串——根据预定义指定格式化时间和日期的字符串形式


注意——format参数的字符串

A:年月日

(1)年—Y:四位数的年份

 y:两位数的年份

(2)月—M:月份缩写

         m:阿拉伯数字月的缩写

(3)日—D:英文下日的缩写

         d:阿拉伯数字日的缩写

(第一个参数的格式化可以放一些无关紧要的字符串,只要无关紧要字符串不在format的目录里,就不会被识别)


B:时分秒

(1)时—H(24小时制表示)

[由于默认时区:东八区,所以会比实际的时钟差8小时]

(2)分—i(正常)

(3)秒—s(正常)

<?php
echo date('现在的时间是:Y-m-d H:m:s');
?>

重点:年-月-日 时:分:秒




(2)getdate()

作用:时间戳转化

<?php
//第一步:定义数组
$a=getdate();

echo $a['mon'];


?>


与date()对比,异同点如下:

相同点:都可以进行时间戳的转换

不同点:date()返回值数组Array类型,getdate()返回值为字符串string类型


3、取得时间(当前时间、特定时间)

(1)当前时间——

a、gettimeofday()

作用:该函数用于取得当前时间,

返回值:一个与当前时间有关的元素所组成的数组


数组下标——

“sec”:自Unix纪元的秒数(作用:取得当前的时间的时间戳)

“usec”:微秒数us

“minuteswest”:格林威治向西的分钟数

“dsttime”:夏令时修正的类型

<?php
//第一步:定义数组
$a=gettimeofday();

//sec——取得当期那时间的时间戳,即转换为人可以看懂的时间
//第二步:结合date函数,
echo date('Y-m-d H:i:s',$a['sec']);
(第二个参数放与不放都可以)

?>
若上述函数的gettimeofday()所有参数设置为0,即永远为false


b、mirtotime()

返回值:两个参数——时间戳+微秒数(两个)

页面运行时间:页面结束加载的时间-页面开始加载的时间

<?php
//list($a,$b)=explode('',microtime);
//怎么计算页面运行加载时间;
//页面结束获取时间-页面开始获取时间
function fn(){
list($a,$b)=explode('',microtime());
return $a+$b;  //计算精准的时间;
}

//页面开始获取时间
$start_time=fn();

for($i=0;$i<1000;$i++){

}

//页面结束获取时间
$end_time=fn();

echo $end_time-$start_time;
?>




(2)时间戳

a、当前时间的时间戳——time()

作用:直接获取当前时间

<?php


//echo time();  该函数用于调整时间


echo date('Y-m-d H:i:s',time());
//time()函数可以过去现在和未来;
echo date('Y-m-d H:i:s',time()+(-2000));  //表示过去的2000s,都以秒s进行加减计算
?>


b、特定时间的时间戳——mktime()
作用:取得特定时间的时间戳
参数:以时分秒,月日年来表示各参数值(6个)
<?php
$beijing=mktime(8,8,8,8,8,2008);  //表示2008-08-08 08:08:08


echo date('Y-m-d H:i:s',$beijing);  
?>




4、时间差的计算


strtotime()将人刻可读的日期转换为时间戳
<?php
echo strtotime('2007-10-31 14:20:20');
?>




计算两个时间的时间差
<?php
echo (strtotime('2007-10-31 14:20:20')-strtotime('2007-10-31 11:30:30'));
?>




5、获取当前文件的修改时间戳


getlastmod()




6、设置时区和GMT/UTC


(1)putenv():配置系统环境变量(PHP4)(不常用)
<?php
echo date('Y-m-d H-i-s');
echo '<br />';


//设置时区;
putenv('TZ=Asia/Shanghai');
echo date('Y--m-d H-i-s');
?>




(2)date_default_timezone_get()
     date_default_timezone_set()
作用:获取当前时区
<?php
echo date('Y-m-d H-i-s');
echo '<br />';


//设置时区;
putenv('TZ=Asia/Shanghai');
echo date('Y--m-d H-i-s');
?>



(3)取得本地时间localtime()