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脚本中include文件出错解决方法
Nov 20 PHP
php密码生成类实例
Sep 24 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
php时间计算相关问题小结
May 09 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
浅谈php://filter的妙用
Mar 05 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的FTP学习(一)[转自奥索]
2006/10/09 PHP
php图片缩放实现方法
2014/02/20 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
jquery 循环显示div的示例代码
2013/10/18 Javascript
php跨域调用json的例子
2013/11/13 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
基于AngularJS的简单使用详解
2017/09/10 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
食品安全工作方案
2014/05/07 职场文书
12岁生日演讲稿
2014/05/14 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
初中学校对照检查材料
2014/08/19 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
小学见习报告
2015/06/23 职场文书
返乡农民工证明
2015/06/24 职场文书
党课主持词大全
2015/06/30 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
浅谈python中的多态
2021/06/15 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL