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

 <?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. C#常用的命名规范

    C#常用的命名规则 Pascal 规则 每个单词开头的字母大写(如 TestCounter). Camel 规则 除了第一个单词外的其他单词的开头字母大写. 如. testCounter. Upper ...

  2. NOI2010海拔

    2007: [Noi2010]海拔 Time Limit: 20 Sec  Memory Limit: 552 MBSubmit: 1302  Solved: 612[Submit][Status] ...

  3. Journal.Today 1.0.0

    我喜欢把一天的日记都放在一个文件中,而不是每次都新建一个文件.   写了一个脚本,检测当天是否已经新建日记,已经新建则打开,未新建则新建并打开.   其中我不太喜欢Wiz日记本来的标题命名方式,所以都 ...

  4. Sharepoint 2010 根据用户权限隐藏Ribbon菜单

    转:http://xiangzhangjun2006.blog.163.com/blog/static/44140966201211715416178/   1.使用SPD打开站点,并打开母版页.默认 ...

  5. java CopyOnWriteArrayList的使用

    除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的). 先回顾一下一个常识: 1.JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个 ...

  6. Android使用HttpClient实现文件上传到PHP服务器,并监控进度条

    上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($ ...

  7. 最近用unity5弄的一些渲染

    unity5 人皮渲染  Skin Shading 换了一种方法,优化了一下代码,unity5效果很好,消耗不大 点开可查看大图 加入了次表面散射的阴影与自阴影 unity5  ocean real- ...

  8. [POJ3684]Physics Experiment

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1363   Accepted: 476   Special Judge ...

  9. Windows Azure -Azure 网站、云服务和虚拟机的对比

    Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...

  10. shell常用命令总结

    统计文件行数 wc -l filename grep -c "" filename sed -n '$=' filename awk 'END{print NR}' filenam ...