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&MYSQL分页原理及实现
Jan 02 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
PHP技术开发技巧分享
Mar 23 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
多个PHP中文字符串截取函数
Nov 12 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php跨站攻击实例分析
Oct 28 PHP
php文件上传简单实现方法
Jan 24 PHP
php返回当前日期或者指定日期是周几
May 21 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判断浏览器的类型和语言的函数代码
2013/02/28 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
Python最长公共子串算法实例
2015/03/07 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
单位未婚证明范本
2014/01/18 职场文书
军训 自我鉴定
2014/02/03 职场文书
我的老师教学反思
2014/05/01 职场文书
2014年体育工作总结
2014/11/24 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
MySQL事务的隔离级别详情
2022/07/15 MySQL
Python中的socket网络模块介绍
2022/07/23 Python