2012-07-10 81 views
0

我想獲取上一個日曆月的開始日期和結束日期。日期操作問題

因此,現在是2012年7月,我希望函數將2012年6月1日作爲開始時間和2012年6月30日作爲結束時間返回。

這是我的代碼:

$current_month = date("Y-m-01 00:00:00"); 
$start_month = strtotime(date("Y-m-d", strtotime($current_month) . " -1 month")); 
$end_month = strtotime(date("Y-m-d", strtotime($current_month) . " -1 second")); 
echo "Start Month: " . date('Y-m-d',$start_month) . "(" . $start_month . ")<br>"; 
echo "End Month: " . date('Y-m-d',$end_month) . "(" . $end_month . ")<br>"; 

但回聲的:

Start Month: 2012-07-01(1341093600) 
End Month: 2012-07-01(1341093600) 

任何想法,我做錯了嗎?

+0

檢查這一點,它可以幫助你http://stackoverflow.com/questions/9735604/the-best-way-to-get-the-上個月的第一個和最後一個月 – Adi 2012-07-10 06:46:52

回答

1

回答什麼是錯與您發佈的代碼,你只需要在一點點移動你的輪托架和你有它。 :)

<?php 
$current_month = date("Y-m-01 00:00:00"); 
$start_month = strtotime(date("Y-m-d", strtotime($current_month . " -1 month"))); 
$end_month = strtotime(date("Y-m-d", strtotime($current_month . " -1 day"))); 
echo "Start Month: " . date('Y-m-d',$start_month) . "(" . $start_month . ")<br>"; 
echo "End Month: " . date('Y-m-d',$end_month) . "(" . $end_month . ")<br>"; 
?> 
0

試試這個,(檢查strtotime手冊)

$now = time(); 
$current_month = date("Y-m-01 00:00:00", $now); 
$start_month = strtotime("-1 month", $now); 
$end_month = strtotime("-1 second", $now); 
+0

只需要'$ now',如果它與「now」不同。只是說:) – KingCrunch 2012-07-10 07:06:00

0

嘗試是這樣的:

echo date("Y-m-d", mktime(0,0,0,date('m')-1,1,date('y'))); 
echo date("Y-m-d", mktime(0,0,0,date('m'),0,date('y'))); 
0

似乎有點過大,你(和其他的答案:X)什麼嘗試。它甫一

echo date('Y-m-d', strtotime('first day of last month')); 
echo date('Y-m-d', strtotime('last day of last month')); 

任意月

// 3 months in the past 
echo date('Y-m-d', strtotime('first day of -3 months')); 
echo date('Y-m-d', strtotime('last day of -3 months')); 

// 3 months in the future 
echo date('Y-m-d', strtotime('first day of +3 months')); 
echo date('Y-m-d', strtotime('last day of +3 months')); 

更多At the manual

0
echo $firstdate= "01/".date('m')."/".date('Y') ; 
$lastdateofmonth=date('t',date('m')); 
echo $lastdate=$lastdateofmonth."/".date('m')."/".date('Y') ; 

$date='2012-06-05 12:00:00'; 

echo "End = ".date("Y-m-t",strtotime($date)); 
echo "start = ".date("Y-m-01",strtotime($date));