2015-06-04 91 views
0

我試圖一個月從日期減去向後給定的日期。我寫的代碼做了減法,但我不知道爲什麼它沒有完成循環。下面是代碼塊While循環減去單月從日期到某一天

$date7 = date('Y-m-10'); 
$lastsaving = date("2013-2-9"); 


while($lastsaving < $date7){ 

$newdate = strtotime ('-1 month' , strtotime ($date7)) ; 
$date7 = date ('Y-m-d' , $newdate); 


echo $date7; 
echo "<br />"; 
} 

結果我得到的是

2015-05-10 
2015-04-10 
2015-03-10 
2015-02-10 
2015-01-10 
2014-12-10 
2014-11-10 
2014-10-10 
2014-09-10 
2014-08-10 
2014-07-10 
2014-06-10 
2014-05-10 
2014-04-10 
2014-03-10 
2014-02-10 
2014-01-10 
2013-12-10 

請幫我找到它沒有完成環

+0

檢查我的答案.. \ –

回答

2

改變

$lastsaving = date("2013-2-9"); 

$lastsaving = date("2013-02-9"); 

在這裏,你可以看到一個工作: http://codepad.org/uI0R6TvC

我上面的人是正確的,以及:) ,將工作太

while(strtotime($lastsaving) < strtotime($date7)) { 

這裏測試:http://codepad.org/OY36ij3U

+0

https://eval.in/375401 - 不會的情況下工作,如果'$ lastsaving =日期( 「2015年5月10日」);'。如果年份相同且月份不同,則不會進入循環。 –

+0

ofcourse由於檢查是比較.. –

+0

沒有..它不會因爲比較的問題工作。它會嘗試轉換它們。 –

2

的原因,你必須將它們轉換爲時間戳第一比較。使用strtotime()爲此 -

while(strtotime($lastsaving) < strtotime($date7)) { ... // rest of the code 
+0

這裏http://codepad.org/uI0R6TvC是正確的代碼 –

+0

你的工作以及.. –

+0

它的意思是。 :) –

0

我改變$lastsaving = date("2013-2-9");$lastsaving = date("2013-02-09");由@Danyal Sandeelo所建議的上述