php獲取上月
A. php 獲取月份數據怎麼寫
取出時間戳,然後利用PHP格式化時間戳就可以看到月了。date('m',這里是從庫中取出的時間戳);這樣輸出出來的就是月了!
B. 如何用PHP 獲取今天之前,本周之前,本月之前,本年之前,今天,本周,本月,本年的數據呢
/*今天*/
select*from表名whereto_days(時間欄位)=to_days(now());
/*昨天*/
select*from表名whereto_days(now())-to_days(時間欄位)=1;
/*近7天*/
select*from表名wheredate_sub(curdate(),interval7day)<=date(時間欄位);
/*查詢距離當前現在6個月的數據*/
select*from表名where時間欄位betweendate_sub(now(),interval6month)andnow();
/*查詢當前這周的數據*/
select*from表名whereyearweek(date_format(時間欄位,'%Y-%m-%d'))=yearweek(now());
/*查詢上周的數據*/
select*from表名whereyearweek(date_format(時間欄位,'%Y-%m-%d'))=yearweek(now())-1;
/*查詢當前月份的數據*/
select*from表名wheredate_format(時間欄位,'%Y-%m')=date_format(now(),'%Y-%m');
/*查詢上個月的數據*/
select*from表名wheredate_format(時間欄位,'%Y-%m')=date_format(date_sub(curdate(),interval1month),'%Y-%m');
其它獲取類似以上的代碼顯示
C. PHP獲取當前日期所在星期(月份)的開始日期與結束日期(實現代碼)
代碼如下:
// 獲取指定日期所在星期的開始時間與結束時間
function getWeekRange($date){
$ret=array();
$timestamp=strtotime($date);
$w=strftime('%u',$timestamp);
$ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);
$ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);
return $ret;
}
// 獲取指定日期所在月的開始日期與結束日期
function getMonthRange($date){
$ret=array();
$timestamp=strtotime($date);
$mdays=date('t',$timestamp);
$ret['sdate']=date('Y-m-1 00:00:00',$timestamp);
$ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);
return $ret;
}
// 以上兩個函數的應用
function getFilter($n){
$ret=array();
switch($n){
case 1:// 昨天
$ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));
$ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));
break;
case 2://本星期
$ret=getWeekRange(date('Y-m-d'));
break;
case 3://上一個星期
$strDate=date('Y-m-d',strtotime('-1 week'));
$ret=getWeekRange($strDate);
break;
case 4: //上上星期
$strDate=date('Y-m-d',strtotime('-2 week'));
$ret=getWeekRange($strDate);
break;
case 5: //本月
$ret=getMonthRange(date('Y-m-d'));
break;
case 6://上月
$strDate=date('Y-m-d',strtotime('-1 month'));
$ret=getMonthRange($strDate);
break;
}
return $ret;
}
D. php有沒相關函數可以獲取給定日期的上個月的第一天及最後一天
沒有,可以取當前月的第一天00:00的時間戳,然後減24小時,再date即是上個月的最後一天。
如:
$prev_month_last_day = date("Y/m/d", strtotime(date("Y-m-1")) - 86400);
list($year, $month, $day) = explode("/", $prev_month_last_day);
$prev_month_first_day = $year . '/' . $month . '/1';
printf("first day of prev month is : %s\nlast day of prev month is : %s\n", $prev_month_first_day, $prev_month_last_day);
E. php中使用mktime() 如何獲取上一月昨天的時間,今天的時間,明天的時間;
如果一個月固定30天,那真的很好辦,直接當前 時間戳-30*86400 就是上一月今天的時間戳了,加減一次86400就是加減一天。
如果今天幾號要對應上一月幾號,我就提一些注意點吧,當前月份減1和加1當然就是上一個月和下一個月,不過注意要12月和1月的判斷,還有如果今天3月30號,上一個月也沒30號,這些還要看你自己想怎麼處理。只要拿到正確的日期,傳入mktime就拿到時間了,至於昨天和明天,一樣加減一次86400就行了。