日期时间函数库的简介
-
设置时区
1、修改php的配置文件date.timezone设置时区
2、通过date_default_timezone_set()动态设置时区 true false
/**
* date_default_timezone_get() 得到当前时区
* 亚洲时区
* PRC 中华人民共和国
* Asia/Shanghai
* 修改php.ini配置文件 date.timezone=PRC,重启服务器,针对所有脚本都有效
*/
echo date_default_timezone_get(); // Europe/Berlin
date_default_timezone_set('PRC');
date_default_timezone_set('Asia/Shanghai');
echo date_default_timezone_get(); // Asia/Shanghai
3、通过init_set()动态设置时区
/**
* ini_set() 运行时设置PHP的时区
* ini_get() 获得配置选项的值
*/
echo ini_get('date.timezone'); // Europe/Berlin
echo PHP_EOL;
ini_set('date.timezone','PRC');
echo ini_get('date.timezone'); // PRC
日期时间函数库的使用
-
格式化本地日期时间date()
image.png
月份:带前导0的是m,不带前导0的是n
日:带前导0的是d,不带前导0的是j
// date('w') // 星期中的第几天
echo date('Y-m-d H:i:s'); // 2019-12-26 11:28:10
echo date('Y'); // 2019
echo date('Y-m-d H:i:s').' 星期'.['日','一','二','三','四','五','六'][date('w')]; // 2019-12-26 11:34:51 星期四
$year = date('Y');
echo date('L') ? '是闰年':'不是闰年'; // 检测是否是闰年,是返回1,不是返回0
if($year % 4==0 && ($year % 100 !=0 || $year % 400 == 0)){
echo '是闰年';
}else{
echo '不是闰年';
}
echo '本周是全年中的第'.date('W').'周'; // 当天是全年中的第52周
echo '当前是本年中的第'.date('z').'天';
echo '本月共'.date('t').'天';
-
时间戳time(),返回秒数
从1970年1月1日00:00:00到当前时间所经历的秒数
获取当前的时间戳
echo time(); // 获取当前时间的时间戳,单位秒
echo '一天之后这个时间为'.date('Y-m-d H:i:s',time()+24*3600);
echo '一周之后这个时间为'.date('Y-m-d H:i:s',time()+7*24*3600);
echo '14天之后这个时间为'.date('Y-m-d H:i:s',time()+14*24*3600);
将制定日期转换成时间戳
$time = mktime(0,0,0,05,25,1988); // mktime(h:i:s n:j:Y)** 得到指定日期的时间戳
$birth = date('Y-m-d',$time);
echo $birth;
$days = floor((time()-$time)/(3600*24*365));
echo $days;
echo mktime(0);
将英文文本的日期或时间转换成时间戳
echo time();
echo PHP_EOL;
echo strtotime('now');
echo PHP_EOL;
echo time()+24*3600;
echo PHP_EOL;
echo strtotime('+1 day');
echo strtotime('-1 day');
echo strtotime('+5 days');
echo strtotime('+1 month');
echo strtotime('+2 years +3 months +4 days');
echo strtotime('last Monday');
-
微秒的使用
通过microtime()获取微秒
通过微秒实现计算PHP的执行时间
echo time(); // 1577363387
echo PHP_EOL;
echo microtime(); // 0.34274400 1577363387 微秒数 时间戳
echo PHP_EOL;
echo microtime(true); // 1577363622.6872
echo PHP_EOL;
$start = microtime(true);
for($i=0;$i<10000;$i++){
$arr[]=$i;
}
$end = microtime(true);
echo '程序执行时间'.round($end-$start,4);
print_r(getDate()); // 得到日期时间相关信息
/**
* Array
(
[seconds] => 6
[minutes] => 40
[hours] => 13
[mday] => 26
[wday] => 4
[mon] => 12
[year] => 2019
[yday] => 359
[weekday] => Thursday
[month] => December
[0] => 1577364006
)
*/
print_r(gettimeofday()); // 获取当前的日期时间信息
/**
*Array
(
[sec] => 1577364122
[usec] => 768192
[minuteswest] => -60
[dsttime] => 0
)
*/
var_dump(checkDate(12,34,2019)); // 验证日期的合法性
网友评论