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转成EXE文件
Oct 09 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
解析php类的注册与自动加载
Jul 05 PHP
php curl_init函数用法
Jan 31 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
php微信公众号开发之图片回复
Oct 20 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
vue中使用input[type="file"]实现文件上传功能
2018/09/10 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
python3中dict(字典)的使用方法示例
2017/03/22 Python
解决uWSGI的编码问题详解
2017/03/24 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
pybind11在Windows下的使用教程
2019/07/04 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python绘制规则网络图形实例
2019/12/09 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
初中生期末评语大全
2014/04/24 职场文书
个人考核材料
2014/05/15 职场文书
奥运会口号
2014/06/13 职场文书
装配出错检讨书
2014/09/23 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers