获取当前日期的上个月的日期

 <?php
/**
*参考有:
*http://www.oschina.net/code/snippet_96541_4015
*http://stackoverflow.com/questions/5489502/how-to-get-previous-month-and-year-relative-to-today-using-strtotime-and-date
*/
$prevDates = ""; //保存最后返回的日期
$dates = "2014-12-30"; //当前需要测试的日期
$nowdays = intval(date("d",strtotime($dates))); //獲取當前月的日期
$datestring=$dates.' first day of last month';
$dt=date_create($datestring);
$prevDate = $dt->format('Y-m-d'); //獲取上個月的1号 $days = date('t', strtotime($prevDate)); //獲取上個月的天數 //当前月的日期小于或等于上个月的天数时
if($days >= $nowdays)
{
$prevDates =$dt->format('Y-m')."-".$nowdays;
}else if($days < $nowdays){
//当前月的日期大于上个月的天数时
$prevDates =$dt->format('Y-m')."-".$days;
} //输出最后返回的日期
var_dump($prevDates); ?>

查看代码

哇哈哈哈哈哈,下面的文字,可能会让你看晕,不知所云,还是使用上面的代码,自己尝试运行一下,实践见真理哦。

-------------------------------------------分割线--------------------------------------------------------------

主要想法:

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

PHP 获取当前日期的上个月的日期的更多相关文章

  1. Smarty 获取当前日期时间和格式化日期时间

    在Smarty 中获取当前日期时间和格式化日期时间与PHP中有些不同的地方,这里就为您详细介绍: 首先是获取当前的日期时间:在PHP中我们会使用date函数来获取当前的时间,实例代码如下:date(& ...

  2. JS获取当前日期时间及JS日期格式化

    Js获取当前日期时间: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份( ...

  3. Java -- 获取当前日期、当月月初日期、月末日期

    Learn From:http://blog.csdn.net/sunhuwh/article/details/39161323 public class CalendarTest { public ...

  4. javascript 添加行,删除行,datepicker获取当前日期和上一个月日期并设置格式,笔记

    $(function () { getdatepicker(); today(); getPreMonth(); getdatetimepicker(); }); function today(){ ...

  5. Java,Calendar -- 获取当前日期、当月月初日期、月末日期

    public class CalendarTest { public static void main(String[] args) { // 获取当前年份.月份.日期 Calendar cale = ...

  6. TypeScript 2 : 获取当前日期及前后范围日期【Array】

    前言 今天有个接口字段需求,要写一个今天及前几天的日期传过去: 在网上找了下都木有什么比较好的方案:就自己写了一个. 因为技术栈就是NG2+TS2+WEBPACK,这里的代码需要一定的TS2及ES6的 ...

  7. 获取当前日期,或指定日期的农历js代码

    时间不早了,直接上代码啦-- var CalendarData=new Array(100);var madd=new Array(12);var tgString="甲乙丙丁戊己庚辛壬癸& ...

  8. php获取当前日期开始一周日期与星期几

    不说了,对于PHPer来说,写不出来说什么都是白瞎,不喜勿喷~~~~ function get_week(){ $data = []; $format='Y-m-d'; for ($i=0; $i&l ...

  9. RF中采用python方法获取当月1号、上月1号、下月1号、当前日期N天后日期、当前日期N天前日期、指定月份总天数、上个月份、下个月份、当月最后1天日期、上个月最后1天日期、下个月最后1天日期

    ${TodayDate} evaluate datetime.date.today().strftime('%Y%m%d') datetime ${CurrentMonthFirstDay} eval ...

随机推荐

  1. Extend ComboGrid Editors for DataGrid Of JQuery EasyUI

    在JQueryEasyUI中为DataGrid自定义了一个ComboGrid编辑器.具体方法: 自己写一个扩展 $.extend($.fn.datagrid.defaults.editors, { c ...

  2. HTML5实现在线抓拍

    <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content=&quo ...

  3. 安装Visual Studio2015后,使用VS2013开发的项目,在IIS访问都提示“公共语言运行时检测到无效的程序”的解决办法

    1.安装VS2015后,.NET Framework4.6会替换掉 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (如果使用的是windows7 64 ...

  4. ArcGIS for Android示例解析之空间查询-----QueryTask

    转自:http://blog.csdn.net/wozaifeiyang0/article/details/7331450 QueryTask 查询功能在GIS中是一个不可或缺的重要功能,示例中提供了 ...

  5. SVN Working Copy xxx locked 并 cleanup失败之解

    从cmd 进入到 workspace文件夹 执行 上边的命令 --------------------------------------------------------------------- ...

  6. C# 深复制

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  7. ASP.Net IE10 _doPostBack 未定义错误【转】

    --昨天发现IE10下面ReportViewer执行报表会报错,发现为Js报_doPostBack 未定义错误,查找相关资料发现问题为 当前framework不能识别IE10版本,把该浏览器做降级处理 ...

  8. 数据流模型、Storm数据流模型

  9. JS跨域笔记

    什么是跨域,跨域是指不同域之间相互访问,只要协议.域名.端口有任何一个不同,都被当作是不同的域. 对于端口和协议的不同,只能通过后台来解决,前台是无能为力的. 受浏览器同源策略的限制,本域的js不能操 ...

  10. [置顶] 单机版hadoop实例安装

    目标:运行单机版hadoop http://localhost:50030mapredule监控界面 http://localhost:50070HDFS监控页面 -->安装linux系统 -- ...