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数据库连接时容易出错的特殊符号问题
Sep 01 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP加密解密实例分析
Dec 25 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
php中关于换行的实例写法
Sep 26 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php之字符串变相相减的代码
2007/03/19 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python 获取当前所在目录的方法详解
2017/08/02 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
pytorch masked_fill报错的解决
2020/02/18 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
公司岗位说明书
2015/10/08 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers