PHP中时间和日期常用函数
2022-06-03PHP
1.时间戳函数: 时间戳:是指自1970-1-1 0:0:0到现在所过去的秒数time(void)返回当前的unix时间戳返回值到秒microtime([bool|$get_as_float])返回当前的时间戳和微秒数echo time();//1528465346echo microtime();//0.01797300 1528465346echo
1.时间戳函数:
时间戳:是指自1970-1-1 0:0:0到现在所过去的秒数
time(void)返回当前的unix时间戳返回值到秒 microtime([bool|$get_as_float])返回当前的时间戳和微秒数 echo time();//1528465346 echo microtime();//0.01797300 1528465346 echo microtime(true);1528465346.018
2.时间戳格式化
date()格式化一个本地时间/日期 gmdate()格式化一个GMT/UTC日期/时间(和date()函数完全一样,只除了返回时间是格林威治标准时GMT) echo date('Y-m-d H:i:s') . '<br />';//2018-06-08 21:46:55 echo date("Y-m-d H:i",1528460160);//2018-06-08 20:16 echo gmdate('Y-m-d H:i:s') . '<br/>';//2018-06-08 13:46:55
3.解析检测日期
mktime([时[,分[,秒[月,[日,[,年]]]]]])//取得一个日期的Unix时间戳,如果参数为空取本地日期和时间的当前值 注意:参数从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值. strtotime()将任何英文文本的日期时间描述解析为Unix时间戳 checkdate(月,日,年)检查一个日期是否合法 echo mktime(21,50,20,3,2,1986);//510155420 注意该函数虽然参数可省略,但不写参数建议使用time() echo strtotime("now");//输出现在的时间戳1528466403 echo strtotime("+1 day");//加1天也就是明天1528552878 echo strtotime(2018-08-2);//得到2018年8月2日现在的时间戳1528460160 var_dump(checkdate(12,31,2000));//检查2000年12月31日是否合法true
祥哥整理了一常见常用的
//(1)打印明天此时的时间戳 echo strtotime("+1 day"); //(2)打印昨天此时的时间戳 echo strtotime("-1 day"); //(3)打印下个星期此时的时间戳 echo strtotime("+1 week"); //(4)打印上个星期此时的时间戳 echo strtotime("-1 week"); //(5)打印指定下星期几的PHP时间戳 echo strtotime("next Thursday"); //(6)打印指定上星期几的时间戳 echo strtotime("last Thursday"); /* 时间转换函数 分别输出刚刚,分钟前,小时前,今天,昨天等函数 */ function transTime($ustime) { $ytime = date("Y-m-d H:i",$ustime); $rtime = date("n月j日 H:i",$ustime); $htime = date("H:i",$ustime); $time = time() - $ustime; $todaytime = strtotime("today"); $time1 = time() - $todaytime; if($time < 60){ $str = '刚刚'; }else if($time < 60 * 60){ $min = floor($time/60); $str = $min.'分钟前'; }else if($time < $time1){ $str = '今天'.$htime; }else{ $str = $rtime; } return $str; } $str = time(); echo transTime($str);
.以日期形式输出
echo "今天:".date("Y-m-d"); echo "昨天:".date("Y-m-d",strtotime("-1 day")); echo "明天:".date("Y-m-d",strtotime("+1 day")); echo "一周后:".date("Y-m-d",strtotime("+1 week")); echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")); echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")); echo "上个周一:".date("Y-m-d",strtotime("last Monday")); echo "一个月前:".date("Y-m-d",strtotime("last month")); echo "一个月后:".date("Y-m-d",strtotime("+1 month")); echo "十年后:".date("Y-m-d",strtotime("+10 year"));
//当月的天数,某月的天数 $month_days = date('t'); $month_days2 = date('t',strtotime('2017-2-6')); echo $month_days.'---'.$month_days2; echo "<br />"; //这个月的第一天的日期,这个月的最后一天的日期 $now_month_first_date = date('Y-m-1'); $now_month_last_date = date('Y-m-d',strtotime(date('Y-m-1',strtotime('next month')).'-1 day')); echo '当月第一天日期'.$now_month_first_date.'当月最后一天的日期'.$now_month_last_date; echo "<br />"; //上个月第一天的日期格式,上个月最后一天的日期格式 $last_mont_first_date = date('Y-m-1',strtotime('last month')); $last_mont_end_date = date('Y-m-d',strtotime(date('Y-m-1').'-1 day')); echo '上个月第一天的日期格式'.$last_mont_first_date.'上个月最后一天的日期格式'.$last_mont_end_date; echo "<br />"; //下个月的第一天时间日期 ,下个月的最后一天时间日期 $next_mont_first_date = date('Y-m-1',strtotime('next month')); $next_mont_end_date = date('Y-m-d',strtotime(date('Y-m-1',strtotime('next month')).'+1 month -1 day')); echo '下个月的第一天时间日期'.$next_mont_first_date.'下个月的最后一天时间日期'.$next_mont_end_date; echo "<br />"; //今日开始-结束时间戳 $start_time = strtotime(date('Y-m-d 00:00:00',time())); $end_time = ($start_time+86400); //本周开始-结束时间戳 $start_time = mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")); $end_time = mktime(23,59,60,date("m"),date("d")-date("w")+7,date("Y")); //本月开始-结束时间戳 $start_time = strtotime(date('Y-m-1').'-1 day')+24*60*60; $end_time = strtotime(date('Y-m-1 00:00:00',strtotime('next month'))); //本年开始时间-结束时间戳 $start_time = strtotime(date('Y-1-1 00:00:00',time())); $end_time = strtotime(date('Y-1-1 00:00:00',strtotime('+1 year')));
很赞哦! ()