PHP 日期操作 小结
最近项目中应用PHP日期处理较多,顺便记录一下。
?
<?php //PHP获得当前日期的前一天和后一天 echo date('Y-m-d',time()-86400); echo date('Y-m-d',time()+86400); //2011-07-09 2011-07-11 //-------------------------------------- 分割线 ------------------------------------ //PHP获得明天、上个月、明年 $tomorrow = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); $lastmonth = date("Y-m-d", mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $nextyear = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")+1)); echo $tomorrow.' '.$lastmonth.' '.$nextyear; //2011-07-11 2011-06-10 2012-07-10 //-------------------------------------- 分割线 ------------------------------------ //PHP获得指定日期所在星期的第一天和最后一天 function getWeekDay($date){ $lastday = date("Y-m-d",strtotime("$date Sunday")); $firstday = date("Y-m-d",strtotime("$lastday -6 days")); return array($firstday,$lastday); } print_r(getWeekDay("2011-07-10")); /** * Array * ( * [0] => 2011-07-04 * [1] => 2011-07-10 * ) */ //-------------------------------------- 分割线 ------------------------------- //PHP获得指定日期所在月的第一天和最后一天 function getMonthDay($date){ $firstday = date("Y-m-01",strtotime($date)); $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday); } print_r(getMonthDay("2011-07-10")); /** * Array * ( * [0] => 2011-07-01 * [1] => 2011-07-31 * ) */
//PHP获得两日期间隔天数[PHP版本>= 5.3 有效] function getIntervalDay($date1 = null, $date2 = null){ $datetime1 = new DateTime($date1); $datetime2 = new DateTime($date2); $interval = $datetime1->diff($datetime2); return $interval->format('%a'); } function getIntervalDay1($date1 = null, $date2 = null){ $datetime1 = date_create($date1); $datetime2 = date_create($date2); $interval = date_diff($datetime1, $datetime2); return $interval->format('%a'); } echo getIntervalDay('2011-07-25', '2011-07-26');//1 echo getIntervalDay1('2011-07-25', '2011-08-28');//34 ?>
?