PHP下获取上个月、下个月、本月的日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP下获取上个月、下个月、本月的日期相关的知识,希望对你有一定的参考价值。

参考技术A 因为工作需要需要获取上个月、下个月、本月的日期,特从网站找到了实现代码,特分享下,方便需要的朋友
今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的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

// 今天

$today = date(‘Y-m-d‘); 

// 本月第一天

$this_first_day = strtotime(date(‘Y-m-01‘, strtotime($today))); 

// 上个月第一天

$last_first_day = date(‘Y-m-01‘,strtotime(date(‘Y-m-01‘, strtotime($today)).‘ -1 month‘)); 


以上是关于PHP下获取上个月、下个月、本月的日期的主要内容,如果未能解决你的问题,请参考以下文章

Java获取本月最后一天问题

java如何获取当天的上一个月

java获取本月开始时间和结束时间上个月第一天和最后一天的时间以及当前日期往前推一周一个月

php日历模块的运算逻辑求解!如何求日期对应的星期几!

java中定义一个字符串类型的日期 算出这个月的第一天和下个月的第一天。

获取本月、本季、本年第一天和最后一天等等sql(sql server)