本篇文章給大家分享的內容是關於php擷取一些時間的實現方法實踐,有著一定的參考價值,有需要的朋友可以參考一下
這幾天在開發的時候遇到的一些時間上的問題,整理了一下,分享給大家,可以看看,有需要的話可以利用一下。
1.擷取上個月第一天及最後一天.
echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; echo date('Y-m-t', strtotime('-1 month')); echo "<br/>";
上面的方法有些問題,做下修改:
上個月第一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month'));// 計算出本月第一天再減一個月
上個月最後一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 計算出本月第一天再減一天
2.擷取當月第一天及最後一天.
$BeginDate=date('Y-m-01', strtotime(date("Y-m-d"))); echo $BeginDate; echo "<br/>"; echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day")); echo "<br/>";
3.擷取當天年份、月份、日及天數.
echo " 本月共有:".date("t")."天"; echo " 當前年份".date('Y'); echo " 當前月份".date('m'); echo " 當前幾號".date('d'); echo "<br/>";
4.使用函數及數組來擷取當月第一天及最後一天,比較實用
function getthemonth($date){ $firstday = date('Y-m-01', strtotime($date)); $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday); } $today = date("Y-m-d"); $day=getthemonth($today); echo "當月的第一天: ".$day[0]." 當月的最後一天: ".$day[1]; echo "<br/>";
擷取本月日期:
function getMonth($date){ $firstday = date("Y-m-01",strtotime($date)); $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday);}
$firstday是月份的第一天,假如$date是2018-2這樣的話,$firstday就會是2018-02-01,然後根據$firstday加一個月就是2018-03-01,再減一天就是2018-02-28,用date()和strtotime()真是太方便了。
擷取上月日期:
function getlastMonthDays($date){ $timestamp=strtotime($date); $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01')); $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday);}
上月日期需要先擷取一個時間戳記,然後在月份上-1就OK了,超智能的date()會把2018-0-1這種東西轉換成2017-12-01,太爽了。
擷取下月日期:
function getNextMonthDays($date){ $timestamp=strtotime($date); $arr=getdate($timestamp); if($arr['mon'] == 12){ $year=$arr['year'] +1; $month=$arr['mon'] -11; $firstday=$year.'-0'.$month.'-01'; $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); }else{ $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01')); $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); } return array($firstday,$lastday);}
下月日期的代碼看起來比較長一點,因為date()轉不了類似2018-13-01這種東西,它會直接回到1970,所以前面需要處理一下12月的問題,除了12月就直接月份+1就OK啦。
總得來說,日期函數太強大了。
這幾天在開發的時候遇到的一些時間上的問題,整理了一下,分享給大家,可以看看,有需要的話可以利用一下。
1.擷取上個月第一天及最後一天.
echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; echo date('Y-m-t', strtotime('-1 month')); echo "<br/>";
上面的方法有些問題,做下修改:
上個月第一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month'));// 計算出本月第一天再減一個月
上個月最後一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 計算出本月第一天再減一天
2.擷取當月第一天及最後一天.
$BeginDate=date('Y-m-01', strtotime(date("Y-m-d"))); echo $BeginDate; echo "<br/>"; echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day")); echo "<br/>";
3.擷取當天年份、月份、日及天數.
echo " 本月共有:".date("t")."天"; echo " 當前年份".date('Y'); echo " 當前月份".date('m'); echo " 當前幾號".date('d'); echo "<br/>";
4.使用函數及數組來擷取當月第一天及最後一天,比較實用
function getthemonth($date){ $firstday = date('Y-m-01', strtotime($date)); $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday); } $today = date("Y-m-d"); $day=getthemonth($today); echo "當月的第一天: ".$day[0]." 當月的最後一天: ".$day[1]; echo "<br/>";
擷取本月日期:
function getMonth($date){ $firstday = date("Y-m-01",strtotime($date)); $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday);}
$firstday是月份的第一天,假如$date是2018-2這樣的話,$firstday就會是2018-02-01,然後根據$firstday加一個月就是2018-03-01,再減一天就是2018-02-28,用date()和strtotime()真是太方便了。
擷取上月日期:
function getlastMonthDays($date){ $timestamp=strtotime($date); $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01')); $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday);}
上月日期需要先擷取一個時間戳記,然後在月份上-1就OK了,超智能的date()會把2018-0-1這種東西轉換成2017-12-01,太爽了。
擷取下月日期:
function getNextMonthDays($date){ $timestamp=strtotime($date); $arr=getdate($timestamp); if($arr['mon'] == 12){ $year=$arr['year'] +1; $month=$arr['mon'] -11; $firstday=$year.'-0'.$month.'-01'; $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); }else{ $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01')); $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); } return array($firstday,$lastday);}
下月日期的代碼看起來比較長一點,因為date()轉不了類似2018-13-01這種東西,它會直接回到1970,所以前面需要處理一下12月的問題,除了12月就直接月份+1就OK啦。
總得來說,日期函數太強大了。