Heim  >  Artikel  >  Backend-Entwicklung  >  PHP获取上个月、下个月、本月的日期(strtotime(),date())_PHP教程

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

WBOY
WBOYOriginal
2016-07-13 10:39:40935Durchsuche

  今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当时太困了吧,再看到有种毛骨悚然的感觉,本来是想再处理一下的,但是一想肯定还有什么超方便的方法,于是找到了下面这个版本,做了一点小修改。

获取本月日期:

<span 1</span> <span function</span> getMonth(<span $date</span><span ){
</span><span 2</span>     <span $firstday</span> = <span date</span>("Y-m-01",<span strtotime</span>(<span $date</span><span ));
</span><span 3</span>     <span $lastday</span> = <span date</span>("Y-m-d",<span strtotime</span>("<span $firstday</span> +1 month -1 day"<span ));
</span><span 4</span>     <span return</span> <span array</span>(<span $firstday</span>,<span $lastday</span><span );
</span><span 5</span> }

  $firstday是月份的第一天,假如$date是2014-2这样的话,$firstday就会是2014-02-01,然后根据$firstday加一个月就是2014-03-01,再减一天就是2014-02-28,用date()和strtotime()真是太方便了。

获取上月日期:

<span 1</span> <span function</span> getlastMonthDays(<span $date</span><span ){
</span><span 2</span>     <span $timestamp</span>=<span strtotime</span>(<span $date</span><span );
</span><span 3</span>     <span $firstday</span>=<span date</span>('Y-m-01',<span strtotime</span>(<span date</span>('Y',<span $timestamp</span>).'-'.(<span date</span>('m',<span $timestamp</span>)-1).'-01'<span ));
</span><span 4</span>     <span $lastday</span>=<span date</span>('Y-m-d',<span strtotime</span>("<span $firstday</span> +1 month -1 day"<span ));
</span><span 5</span>     <span return</span> <span array</span>(<span $firstday</span>,<span $lastday</span><span );
</span><span 6</span> }

  上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2014-0-1这种东西转换成2013-12-01,太爽了。

获取下月日期:

<span  1</span> <span function</span> getNextMonthDays(<span $date</span><span ){
</span><span  2</span>     <span $timestamp</span>=<span strtotime</span>(<span $date</span><span );
</span><span  3</span>     <span $arr</span>=<span getdate</span>(<span $timestamp</span><span );
</span><span  4</span>     <span if</span>(<span $arr</span>['mon'] == 12<span ){
</span><span  5</span>         <span $year</span>=<span $arr</span>['year'] +1<span ;
</span><span  6</span>         <span $month</span>=<span $arr</span>['mon'] -11<span ;
</span><span  7</span>         <span $firstday</span>=<span $year</span>.'-0'.<span $month</span>.'-01'<span ;
</span><span  8</span>         <span $lastday</span>=<span date</span>('Y-m-d',<span strtotime</span>("<span $firstday</span> +1 month -1 day"<span ));
</span><span  9</span>     }<span else</span><span {
</span><span 10</span>         <span $firstday</span>=<span date</span>('Y-m-01',<span strtotime</span>(<span date</span>('Y',<span $timestamp</span>).'-'.(<span date</span>('m',<span $timestamp</span>)+1).'-01'<span ));
</span><span 11</span>         <span $lastday</span>=<span date</span>('Y-m-d',<span strtotime</span>("<span $firstday</span> +1 month -1 day"<span ));
</span><span 12</span> <span     }
</span><span 13</span>     <span return</span> <span array</span>(<span $firstday</span>,<span $lastday</span><span );
</span><span 14</span> }

  下月日期的代码看起来比较长一点,因为date()转不了类似2014-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/729838.htmlTechArticle今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn