• 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.用 当前日期的日期(下面用"日期"表示)和上个月的日期的天数(下面用"天数"说明)来对比

    1.   日期 小于或等于 天数,使用当前日期的日期做上个月的日期(可能这里有点晕)
    2.   日期  大于  天数,使用天数来做上个月的日期

    具体数据:

    设定当前日期为:2014-10-30

    1.获取到日期为:30号

    2.上个月的第一天为:2014-09-01

    3.计算出9月的天数为:30 天

    4.判断 日期(30号) 和 天数(30天)

    1.  日期(30) 等于 天数(30),最后返回日期为:2014-09-30
  • 相关阅读:
    Sql获取数据集中各类型中的最大值(最新值)
    oracle重装系统后恢复
    icePDF去水印方法
    js的倒计时在ie下显示NAN的最佳解决办法
    类属性与类方法
    多继承、多态
    继承、方法重写与调用
    私有方法
    对象的属性隐藏
    __init__、__str__、__del__方法
  • 原文地址:https://www.cnblogs.com/fsong/p/4001733.html
Copyright © 2020-2023  润新知