phpで今日の日付から現在の年度を判別して一覧を作成する方法

phpで今日の日付から現在の年度を判別して一覧を作成する方法

phpで、今日の日付から現在の4月から始まる年度を判別して一覧を作成する方法

php関連記事

関連記事をもっとみる

1月以降の西暦が変わる問題を解決する

php

//今日の日付の1日から3か月戻す
$year = date("Y-m-01", strtotime("-3 month"));
//西暦だけを取得
$year = date("Y",strtotime($year));

今日の日付から、3か月戻すことで、1月~3月も現在の西暦で計算されてしまうことを防ぐ。
また、今日の日付からではなく、当月の1日に戻すことでstrtotime("-3 month")で正しくない日付が出力される問題も解決できる。
月ごとに西暦を入れたいので、$yearは、年だけにしておく。

月ごとに西暦を格納する

php

//月を格納
$mon_num = array();
for ($i=4; $i <= 12; $i++) { 
  $mon_num[] = $i;
}

//最終的に利用する年度の配列
$ym = array();
foreach ($mon_num as $m) {
  $ym[] = array($year, $m);
}

//1月以降を追加
$mon_num = array('1', '2', '3');
foreach ($mon_num as $m) {
  $ym[] = array($year+1, $m);
}

出力結果

php

array(12) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(4)
  }
  [1]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(5)
  }
  [2]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(6)
  }
  [3]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(7)
  }
  [4]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(8)
  }
  [5]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(9)
  }
  [6]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(10)
  }
  [7]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(11)
  }
  [8]=>
  array(2) {
    [0]=>
    string(4) "2020"
    [1]=>
    int(12)
  }
  [9]=>
  array(2) {
    [0]=>
    int(2021)
    [1]=>
    string(1) "1"
  }
  [10]=>
  array(2) {
    [0]=>
    int(2021)
    [1]=>
    string(1) "2"
  }
  [11]=>
  array(2) {
    [0]=>
    int(2021)
    [1]=>
    string(1) "3"
  }
}

コメント

タイトルとURLをコピーしました