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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
Dedecms常用函数解析
Feb 01 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
php学习之数据类型之间的转换代码
May 29 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
php实现网站留言板功能
Nov 04 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
基于PHP后台的Android新闻浏览客户端
May 23 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 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
一个数据采集类
2007/02/14 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php socket通信简单实现
2016/11/18 PHP
php字符集转换
2017/01/23 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
Python编程实现的简单神经网络算法示例
2018/01/26 Python
python实现剪切功能
2019/01/23 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python中的__init__作用是什么
2020/06/09 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
请说出以下代码输出什么
2013/08/30 面试题
酒店员工职业生涯规划
2014/02/25 职场文书
规划编制实施方案
2014/03/15 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
安全生产标语大全
2014/10/06 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server