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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
用session做客户验证时的注意事项
Oct 09 PHP
让你同时上传 1000 个文件 (二)
Oct 09 PHP
一篇入门的php Class 文章
Apr 04 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
Nov 05 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
PDO::errorInfo讲解
Jan 28 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
Feb 27 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 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脚本的10个技巧(3)
2006/10/09 PHP
php下载文件的代码示例
2012/06/29 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
基于jquery的气泡提示效果
2010/05/31 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
python timestamp和datetime之间转换详解
2017/12/11 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
纽约手袋品牌:KARA
2018/03/18 全球购物
大学军训自我鉴定
2013/12/15 职场文书
找工作最新求职信
2013/12/22 职场文书
销售心得体会
2014/01/02 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
二审答辩状范文
2015/05/22 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
个人售房合同协议书
2016/03/21 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书