PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPで数値を月の名前に変換する方法をわかりやすく解説

PHPで数値(月番号)を月の名前に変換したい場合、date()関数とmktime()関数を組み合わせる方法や、DateTime::createFromFormat()メソッドを使う方法があります。この記事では、それぞれの具体的な実装例と実行結果を紹介します。

例1:date()とmktime()を使った変換方法

mktime()関数で指定した月の日時を作成し、date("F")フォーマットで月の完全な英語名を取得します。あわせて、strtotime()を使って日付に日数を加算する処理も行っています。

<?php
    $date = "2019-11-11";
    echo "Displaying date...\n";
    echo "Date = $date";
    $month_name = date("F", mktime(0, 0, 0, 11, 10));
    echo "\nMonth = ".$month_name."\n";
    echo "\nDisplaying updated date...\n";
    echo date('Y-m-d', strtotime($date. ' + 20 days'));
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

Displaying date...
Date = 2019-11-11
Month = November
Displaying updated date...
2019-12-01

この例では、mktime(0, 0, 0, 11, 10)により「11月」を表すタイムスタンプを生成し、date("F", ...)によって「November」という月名を取得しています。また、基準日の20日後の日付も表示しています。

例2:DateTime::createFromFormat()を使った変換方法

もうひとつの方法として、DateTime::createFromFormat()を使用する手法があります。フォーマット文字列に'!m'を指定することで、数値から直接DateTimeオブジェクトを生成し、月名を取り出せます。

<?php
    $date = "2019-11-11";
    echo "Displaying date...\n";
    echo "Date = $date";
    $month_name = date("F", mktime(0, 0, 0, 11, 10));
    echo "\nMonth = ".$month_name."\n";
    echo "\nDisplaying updated date...\n";
    echo date('Y-m-d', strtotime($date. ' + 20 days'));
    $val = DateTime::createFromFormat('!m', 12);
    $month_name2 = $val->format('F');
    echo "\nMonth = ".$month_name2."\n";
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

Displaying date...
Date = 2019-11-11
Month = November
Displaying updated date...
2019-12-01
Month = December

このように、DateTime::createFromFormat('!m', 12)では「12」を月番号として解釈し、format('F')で「December」という月名に変換しています。

まとめ

  • date() + mktime():月番号からタイムスタンプを生成し、月名を取得するシンプルな方法です。
  • DateTime::createFromFormat('!m', 数値):オブジェクト指向的なアプローチで、可読性が高く柔軟な処理が可能です。

用途に応じて使い分けることで、PHPでの日付・月名変換を効率的に行えます。なお、日本語の月名が必要な場合は、配列で「1月〜12月」を定義して数値をインデックスとして参照する方法も有効です。

  1. Excelでシリアル番号を日付に変換する方法|セルの書式設定を使った簡単な手順

    Excelの日付・時刻関数を使おうとしたのに、日付ではなくシリアル番号が表示されて戸惑ったことはありませんか?これは、Excelが内部的に日付や時刻をシリアル番号(連続した数値)として保存しているためです。たとえば、画面上では「2021/7/25」のように見える日付も、バックエンドでは単なる数値として記録されています。 Excelでシリアル番号を日付形式に変換する方法 Microsoft Excelには、数値を日付に変換する機能が標準で備わっており、操作はとても簡単です。ここでは、シリアル番号を日付形式に変換する具体的な手順を解説します。 書式を変更したいセルを選択します。 「ホーム」タブの

  2. Pythonで日付(date)を日時(datetime)に変換する方法

    Pythonでは、datetimeモジュールのcombine()メソッドを使うことで、日付(date)と時刻(time)を組み合わせて、新しいdatetimeオブジェクトを作成できます。timeオブジェクトが手元にない場合は、datetime.min.time()を使って最小の時刻(つまり深夜0時=真夜中)を表すtimeオブjectを取得できます。方法1:datetime.combine() を使う以下の例では、今日の日付と最小の時刻(0時0分0秒)を組み合わせて、datetimeオブジェクトを生成しています。from datetime import date from datetime im