PHP下获取上个月、下个月、本月的日期(strtotime,date)


Posted in PHP onFebruary 02, 2014

今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当时太困了吧,再看到有种毛骨悚然的感觉,本来是想再处理一下的,但是一想肯定还有什么超方便的方法,于是找到了下面这个版本,做了一点小修改。

获取本月日期:

function getMonth($date){
     $firstday = date("Y-m-01",strtotime($date));
     $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day"));
     return array($firstday,$lastday);
 }

$firstday是月份的第一天,假如$date是2014-2这样的话,$firstday就会是2014-02-01,然后根据$firstday加一个月就是2014-03-01,再减一天就是2014-02-28,用date()和strtotime()真是太方便了。

获取上月日期:

function getlastMonthDays($date){
     $timestamp=strtotime($date);
     $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));
     $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
     return array($firstday,$lastday);
 }

上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2014-0-1这种东西转换成2013-12-01,太爽了。

获取下月日期:

function getNextMonthDays($date){
    $timestamp=strtotime($date);
    $arr=getdate($timestamp);
    if($arr['mon'] == 12){
        $year=$arr['year'] +1;
        $month=$arr['mon'] -11;
        $firstday=$year.'-0'.$month.'-01';
        $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
    }else{
        $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
        $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
    }
    return array($firstday,$lastday);
}

下月日期的代码看起来比较长一点,因为date()转不了类似2014-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。

总得来说,还是很方便的,日期函数太强大了。

PHP 相关文章推荐
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
提高PHP编程效率的方法
Nov 07 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
php操作memcache缓存方法分享
Jun 03 PHP
PHP实现事件机制实例分析
Jun 26 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
PHP基本语法实例总结
Sep 09 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
Yii 实现数据加密和解密
Mar 09 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 #PHP
分享一个超好用的php header下载函数
Jan 31 #PHP
preg_match_all使用心得分享
Jan 31 #PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 #PHP
php curl_init函数用法
Jan 31 #PHP
curl实现站外采集的方法和技巧
Jan 31 #PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 #PHP
You might like
最简单的PHP程序--记数器
2006/10/09 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
js实现旋转木马效果
2017/03/17 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
python中定义结构体的方法
2013/03/04 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
django列表筛选功能的实现代码
2020/03/27 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
应届毕业生求职信范文分享
2013/12/26 职场文书
品牌宣传方案
2014/03/21 职场文书
计划生育工作汇报
2014/10/28 职场文书
党支部先进事迹材料
2014/12/24 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
公司人力资源管理制度
2015/08/05 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs