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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
mysql+php分页类(已测)
Mar 31 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP常用的三种设计模式
Feb 17 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
PHP实现随机发放扑克牌
Apr 21 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
PHP安全下载文件的方法
2016/04/07 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
浅析vue数据绑定
2017/01/17 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
python中for语句简单遍历数据的方法
2015/05/07 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
tensorflow常用函数API介绍
2020/04/19 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
自主招生自荐信
2013/12/08 职场文书
小学班主任评语大全
2014/04/23 职场文书
大学活动总结范文
2014/04/29 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
上课说话检讨书500字
2014/11/01 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python