循环减去从某个日期到给定日期的一个月

时间:2015-06-04 08:12:27

标签: php mysql datetime datetime-format

我试图从一个日期后退一个月减去给定日期。我写的代码做减法,但我不知道为什么它没有完成循环。下面是代码块

$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 

请帮我找到它没有完成循环的原因

3 个答案:

答案 0 :(得分:2)

您必须先将它们转换为时间戳才能进行比较。请使用strtotime() -

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

答案 1 :(得分:2)

更改

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

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

在这里,你可以看到工作的: http://codepad.org/uI0R6TvC

我上面的那个人也是对的:) 这也会起作用

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

在此测试:http://codepad.org/OY36ij3U

答案 2 :(得分:0)

我按照上面@Danyal Sandeelo的建议将$lastsaving = date("2013-2-9");更改为$lastsaving = date("2013-02-09");