PHP 获取当前日期的上个月的日期
获取当前日期的上个月的日期
1 <?php 2 /** 3 *参考有: 4 *http://www.oschina.net/code/snippet_96541_4015 5 *http://stackoverflow.com/questions/5489502/how-to-get-previous-month-and-year-relative-to-today-using-strtotime-and-date 6 */ 7 $prevDates = ""; //保存最后返回的日期 8 $dates = "2014-12-30"; //当前需要测试的日期 9 $nowdays = intval(date("d",strtotime($dates))); //獲取當前月的日期 10 $datestring=$dates.' first day of last month'; 11 $dt=date_create($datestring); 12 $prevDate = $dt->format('Y-m-d'); //獲取上個月的1号 13 14 $days = date('t', strtotime($prevDate)); //獲取上個月的天數 15 16 //当前月的日期小于或等于上个月的天数时 17 if($days >= $nowdays) 18 { 19 $prevDates =$dt->format('Y-m')."-".$nowdays; 20 }else if($days < $nowdays){ 21 //当前月的日期大于上个月的天数时 22 $prevDates =$dt->format('Y-m')."-".$days; 23 } 24 25 //输出最后返回的日期 26 var_dump($prevDates); 27 28 ?>
哇哈哈哈哈哈,下面的文字,可能会让你看晕,不知所云,还是使用上面的代码,自己尝试运行一下,实践见真理哦。
-------------------------------------------分割线--------------------------------------------------------------
主要想法:
1.获取当前日期的日期,如:2014-10-30,先获取到30
2.获取当前日期的上个月的第一天,如:2014-09-01
3.计算出上个月的日期的天数,如:2014-09 有30天
4.用 当前日期的日期(下面用"日期"表示)和上个月的日期的天数(下面用"天数"说明)来对比
- 日期 小于或等于 天数,使用当前日期的日期做上个月的日期(可能这里有点晕)
- 日期 大于 天数,使用天数来做上个月的日期
具体数据:
设定当前日期为:2014-10-30
1.获取到日期为:30号
2.上个月的第一天为:2014-09-01
3.计算出9月的天数为:30 天
4.判断 日期(30号) 和 天数(30天)
- 日期(30) 等于 天数(30),最后返回日期为:2014-09-30