其实在PHP 关于时间的内置函数用的最多的就date,mktime,strtotime这3个. 至于strtotime只是用来转换时间戳用的. 我们重点讲下date与mktime的使用….
说到使用,筒子们还是去看下手册,可比我在这里说的清楚多了. 话不多说,返到正题…
最近在做项目的时候,就有一个要求,就是求出昨天,本周,上周,去年,今年的一些时间段. 因为我们的表是已月份自动生成的,所以就有一点点麻烦.
//echo date('Y-m-d',strtotime('-1 week')); //返回的是前7天到现在的时间 $day = date('d'); $mon = date('m'); $year = date('Y'); //echo date('Y-m-d', mktime('0','0','0',$mon,$day-1,$year)); //返回昨天的日期 /* * 上一周的时间间隔 * 思路:用返回的星期数计算,开始时间为(当前日期-星期数-6),结束时间为(当前日期-星期数)已每个星期1为一周的开始 */ $today = date('N'); //方法1 $start = date('Y-m-d', mktime(0,0,0, date('m'), date('d')-date('N')-6,date('Y'))); $end = date('Y-m-d', mktime(23,59,59, date('m'), date('d')-date('N'),date('Y'))); //方法2(结束时间就是当前时间-星期数*24*60*60) $nowtim = strtotime($day.'-'.$mon.'-'.$year. '23:59:59'); //已另一天的00:00:00为开始 $end = date('Y-m-d H:i:s', $nowtim-($today*24*60*60)); $start = date('Y-m-d H:i:s', strtotime(date('Y-m-d'))-($today*24*60*60)-(6*24*60*60)); /*本周的时间间隔(也有2种方法)把星期1为一周的开始*/ $start = date('Y-m-d', mktime(0,0,0, $mon, $day-$today+1, $year)); $end = date('Y-m-d H:i:s', mktime(23,59,59, $mon, $day-$today+7, $year)); echo $end; /*本月*/ $tomon_s = date('Y-m-d H:i:s', mktime(0,0,0, $mon, 1, $year)); $tomon_e = date('Y-m-d H:i:s', mktime(23,59,59, $mon+1, 0, $year)); //echo $tomon_e; /*上个月*/ $nemon_s = date('Y-m-d H:i:s', mktime(0,0,0, $mon-1, 1, $year)); $nemon_e = date('Y-m-d H:i:s', mktime(23,59,59, $mon, 0, $year));