今日プログラムを書いていたら、昔書いた月の日数を取得する関数を発見しました。古典的なスイッチバージョンですが、前月の日数を取得するときに、月を-1変更しただけです。その時は眠すぎて不気味な感じがしたので、もう一度対処したいと思いましたが、何か超便利な方法があるはずだと思い、バージョンを見つけました。以下にいくつかの小さな修正を加えました。
今月の日付を取得します:
1 function getMonth($date){ 2 $firstday = date("Y-m-01",strtotime($date)); 3 $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); 4 return array($firstday,$lastday); 5 }
$firstday が月の最初の日 $date が 2014-2 の場合、$firstday は 2014-02-01 となり、$ に基づいて 1 か月を加算します。 firstday 2014-03-01 から 1 日を引くと 2014-02-28 になります。 date() と strtotime() を使用すると便利です。
先月の日付を取得します:
1 function getlastMonthDays($date){ 2 $timestamp=strtotime($date); 3 $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01')); 4 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 5 return array($firstday,$lastday); 6 }
先月の日付は、まずタイムスタンプを取得してから、月に -1 を追加する必要があります。非常にスマートな date() は、2014- のように変換します。 2013 年 12 月 1 日まで 0 勝 1 敗、とてもクールです。
来月の日付を取得します:
1 function getNextMonthDays($date){ 2 $timestamp=strtotime($date); 3 $arr=getdate($timestamp); 4 if($arr['mon'] == 12){ 5 $year=$arr['year'] +1; 6 $m -11; 7 $firstday=$year.'-0'.$month.'-01'; 8 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 9 }else{ 10 $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01')); 11 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 12 } 13 return array($firstday,$lastday); 14 }
date() は 2014-13 のようなものを変換できないため、来月の日付のコードは少し長く見えます。 -01, it 直接1970年に戻るので、12月の問題を前に扱う必要があります。12月以外は月+1するだけでOKです。
全体的にとても便利です、日付機能が強力すぎます。
上記は、strtotime、先月、来月、今月の日付を取得するための PHP の紹介です。内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。