PHP下获取上个月、下个月、本月的日期(strtotime,date)

2015-01-24信息快讯网

因为工作需要需要获取上个月、下个月、本月的日期,特从网站找到了实现代码,特分享下,方便需要的朋友

今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的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啦。

总得来说,还是很方便的,日期函数太强大了。

mantis安装、配置和使用中的问题小结
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Thinkphp的volist标签嵌套循环使用教程
PHP的error_reporting错误级别变量对照表
php发送get、post请求的6种方法简明总结
PHP关于htmlspecialchars、strip_tags、addslashes的解释
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
浅析application/x-www-form-urlencoded和multipart/form-data的区别
ThinkPHP3.1新特性之Action参数绑定
ThinkPHP CURD方法之data方法详解
Codeigniter中禁止A Database Error Occurred错误提示的方法
PHP中date与gmdate的区别及默认时区设置
yii框架builder、update、delete使用方法
php将字符串转化成date存入数据库的两种方式
easyui的tabs update正确用法分享
php获取网页标题和内容函数(不包含html标签)
采用header定义为文件然后readfile下载(隐藏下载地址)
php curl post 时出现的问题解决
php缓冲 output_buffering和ob_start使用介绍
基于php和mysql的简单的dao类实现crud操作功能
linux系统下php安装mbstring扩展的二种方法
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
PHP面向对象之旅:深入理解static变量与方法
php-perl哈希算法实现(times33哈希算法)
php二维数组排序方法(array_multisort usort)
php使用strtotime和date函数判断日期是否有效代码分享
PHP函数microtime()用法与说明
简单实用的.net DataTable导出Execl
关于php程序报date()警告的处理(date_default_timezone_set)
php stream_get_meta_data返回值
PHP中time(),date(),mktime()区别介绍
PHP函数之日期时间函数date()使用详解
php中用date函数获取当前时间有误的解决办法
©2014-2024 dbsqp.com