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的知识
Nov 17 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 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写的基于Memcache的Queue实现代码
2011/11/27 PHP
php eval函数用法总结
2012/10/31 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
js文件中调用js的实现方法小结
2009/10/23 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
Python中return self的用法详解
2018/07/27 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
python多进程并发demo实例解析
2019/12/13 Python
Python函数参数分类原理详解
2020/05/28 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
公司员工的自我评价范例
2013/11/01 职场文书
给国外客户的邀请函
2014/01/30 职场文书
启动仪式策划方案
2014/06/14 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
浅析Python OpenCV三种滤镜效果
2022/04/11 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python