5ステップで理解するPHPの日付フォーマット変換方法 – Japanシーモア

5ステップで理解するPHPの日付フォーマット変換方法

PHPでの日付フォーマットの変換方法を解説する図PHP
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

皆さんはPHPで日付を扱ったことはありますか?

日付は予約システムやログの作成、期限の設定など、ウェブサイト開発で頻繁に使われます。

今回の記事では、PHPで日付のフォーマットを変換する方法を詳しく解説します。

日付の取得から加減算、タイムゾーンの設定まで、具体的なコード例を交えながら説明します。

この記事を読めば、PHPで日付のフォーマットを自在に変換することができるようになります。

●PHPでの日付とは

PHPで日付を扱う際には、いくつかの関数とクラスが用意されています。

まずは、それらの基本的な使い方を理解しましょう。

○PHPと日付の扱い

PHPでは、日付は通常文字列またはUnixタイムスタンプ(1970年1月1日からの経過秒数)として扱われます。

PHPにはこれらを変換し、操作するための関数やクラスが用意されています。

○日付関数の基本

PHPで日付を扱う際には、「date」関数や「strtotime」関数がよく使われます。

これらの関数を使うことで、日付の取得、フォーマットの変更、日付の計算などが可能になります。

●PHPでの日付フォーマット変換の基本

次に、PHPで日付のフォーマットを変換する基本的な方法を見ていきましょう。

具体的なコードを交えて説明します。

○date関数とその使い方

date関数は、指定したフォーマットで現在の日付や時刻を取得するための関数です。

引数にはフォーマットを表す文字列を指定します。

○サンプルコード1:date関数で現在の日付を取得

次のコードは、date関数を使って現在の日付を”Y-m-d”の形式で取得する例です。

<?php
// 現在の日付を取得
$today = date("Y-m-d");
echo $today;
?>

このコードでは、date関数を使って現在の日付を取得し、それを”Y-m-d”の形式(年-月-日)で表示しています。

○strtotime関数とその使い方

strtotime関数は、人間が読みやすい形式の日付文字列をUnixタイムスタンプに変換する関数です。

引数には日付を表す文字列を指定します。

○サンプルコード2:strtotime関数で日付文字列をUnixタイムスタンプに変換

次に示すのは、strtotime関数を用いて日付文字列をUnixタイムスタンプに変換する例です。

<?php
// 文字列をUnixタイムスタンプに変換
$timestamp = strtotime("2023-05-20");
echo $timestamp;
?>

このコードは、strtotime関数に”2023-05-20″という文字列を渡しています。

これにより、指定した日付をUnixタイムスタンプ(1970年1月1日からの経過秒数)に変換し、その結果を表示します。

●日付フォーマットの応用

日付の基本的な扱い方を理解したところで、次は日付のフォーマット変換をもう少し深掘りしていきましょう。

○DateTimeクラスとその使い方

PHPにはDateTimeクラスというものがあります。

これを使用することで、日付や時間をより柔軟に扱うことが可能になります。

○サンプルコード3:DateTimeクラスで日付情報を扱う

次のコードは、DateTimeクラスを使って現在の日付情報を扱う例を示しています。

<?php
// DateTimeクラスで現在の日付情報を扱う
$datetime = new DateTime();
echo $datetime->format('Y-m-d H:i:s');
?>

このコードでは、DateTimeクラスのインスタンスを作成し、そのインスタンスのformatメソッドを使用して現在の日付と時刻を”Y-m-d H:i:s”形式で表示しています。

○サンプルコード4:DateTimeクラスで日付を加減算

次に、DateTimeクラスを使用して日付の加減算を行う例を示します。

<?php
// DateTimeクラスで日付を加減算
$datetime = new DateTime();
$datetime->modify('+1 week');
echo $datetime->format('Y-m-d H:i:s');
?>

このコードでは、先ほど作成したDateTimeクラスのインスタンスに対してmodifyメソッドを使用しています。

modifyメソッドに’+1 week’という引数を渡すことで、現在の日付に1週間を加算し、その結果を表示しています。

●日付フォーマット変換の注意点と対策

日付のフォーマット変換にはいくつかの注意点があります。

それらを理解し、適切に対策することで、予期しないエラーを防ぐことが可能です。

○タイムゾーンの設定

PHPで日付を扱う際には、タイムゾーンの設定が重要です。

タイムゾーンが適切に設定されていないと、意図しない時間が表示されることがあります。

○日付フォーマットのエラーハンドリング

日付のフォーマット変換では、入力された日付の形式が不適切だった場合や存在しない日付が指定された場合など、エラーが発生することがあります。

適切なエラーハンドリングを行うことで、エラーが発生した際に適切に対処することが可能です。

○サンプルコード5:エラーハンドリングを伴った日付変換

次のコードは、DateTimeクラスを使用した日付変換において、エラーハンドリングを行っている例です。

<?php
// エラーハンドリングを伴った日付変換
try {
    $datetime = new DateTime('2023-02-30');
    echo $datetime->format('Y-m-d H:i:s');
} catch (Exception $e) {
    echo "不適切な日付形式です。";
}
?>

このコードでは、存在しない日付(2023年2月30日)をDateTimeクラスのコンストラクタに渡しています。

これにより、例外が発生し、catchブロック内の処理が実行されます。

その結果、”不適切な日付形式です。”というメッセージが表示されます。

まとめ

この記事では、PHPで日付のフォーマットを変換する方法について詳しく解説しました。日付の扱いはウェブアプリケーション開発において重要な要素の一つです。本記事が皆さんの開発に役立てば幸いです。