Press "Enter" to skip to content

php 时间计算 昨天 本周 上周上月

其实在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));

发表评论

电子邮件地址不会被公开。 必填项已用*标注