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');//1echo getIntervalDay1('2011-07-25', '2011-08-28');//34?>
?