PHP・MySQLで日付形式をdd/mm/yyyyに変更する方法
PHPやMySQLでは、日付の表示形式を自由に変更できます。本記事では、日付を「dd/mm/yyyy(日/月/年)」形式に変換する方法を、PHPとMySQLそれぞれのケースについて解説します。
PHPで日付形式を変更する方法
PHPでは、date()関数を使って日付形式を簡単に変更できます。基本構文は以下の通りです。
date('d/m/Y', 日時の変数);また、文字列を日付として扱う場合は、strtotime()関数を使用します。この関数は、日付を表す文字列をUnixタイムスタンプに変換してくれるため、date()関数と組み合わせて使うのが一般的です。
以下は、日時を「dd/mm/yyyy」形式に整形するPHPコードの例です。
$LogintDate = strtotime('2019-01-12');
echo date('d/m/Y', $LogintDate);このコードを実行すると、出力結果は以下のようになります。
12/01/2019
元の日付「2019-01-12」が、「12/01/2019」という形式に変換されていることがわかります。
MySQLで日付形式を変更する方法
データベース側で日付形式を変更したい場合は、MySQLのDATE_FORMAT()関数を使用します。基本構文は以下の通りです。
SELECT DATE_FORMAT(カラム名,'%d/%m/%Y') AS 任意の別名 FROM テーブル名;
サンプルテーブルの作成
実際に動作を確認するため、まずはテスト用のテーブルを作成しましょう。
mysql> create table Date_FormatDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> LoginDate datetime,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.64 sec)テストデータの挿入
次に、INSERT文を使っていくつかのレコードを挿入します。
mysql> insert into Date_FormatDemo(LoginDate) values(curdate());
Query OK, 1 row affected (0.17 sec)
mysql> insert into Date_FormatDemo(LoginDate) values(now());
Query OK, 1 row affected (0.27 sec)
mysql> insert into Date_FormatDemo(LoginDate) values('2019-11-12');
Query OK, 1 row affected (0.11 sec)
mysql> insert into Date_FormatDemo(LoginDate) values(date_add(now(),interval 2 day));
Query OK, 1 row affected (0.13 sec)
mysql> insert into Date_FormatDemo(LoginDate) values(date_add(curdate(),interval -2 day));
Query OK, 1 row affected (0.22 sec)ここでは、curdate()(現在の日付)、now()(現在の日時)、さらにdate_add()を使って2日後・2日前の日付も登録しています。
登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from Date_FormatDemo;
出力結果は以下の通りです。
+----+---------------------+ | Id | LoginDate | +----+---------------------+ | 1 | 2019-01-12 00:00:00 | | 2 | 2019-01-12 22:53:53 | | 3 | 2019-11-12 00:00:00 | | 4 | 2019-01-14 22:54:27 | | 5 | 2019-01-10 00:00:00 | +----+---------------------+ 5 rows in set (0.00 sec)
DATE_FORMAT()で形式を変換する
それでは、日付を「dd/mm/yyyy」形式に変更してみましょう。実行するクエリは以下の通りです。
mysql> select date_format(LoginDate,'%d/%m/%Y') as DateFormat from Date_FormatDemo;
出力結果は以下のようになります。
+------------+ | DateFormat | +------------+ | 12/01/2019 | | 12/01/2019 | | 12/11/2019 | | 14/01/2019 | | 10/01/2019 | +------------+ 5 rows in set (0.00 sec)
まとめ
PHPではdate()関数とstrtotime()関数を組み合わせることで、MySQLではDATE_FORMAT()関数を使うことで、それぞれ日付を「dd/mm/yyyy」形式に変換できます。用途に応じて、アプリケーション側(PHP)で変換するか、データベース側(MySQL)で変換するかを選択するとよいでしょう。なお、日本国内向けのシステムでは「yyyy/mm/dd」や「yyyy年mm月dd日」形式が一般的なため、その場合は書式指定子を%Y/%m/%dのように変更すれば対応可能です。
-
PHP変数「11:00 AM」をMySQLの時間形式に変換する方法
PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2
-
PHPで日付形式を変換する方法|strtotime・date関数の使い方を解説
PHPで日付形式を変換するには、strtotime関数とdate関数を組み合わせるのが基本のアプローチです。ここでは、実際のサンプルコードをもとに、その仕組みと注意点をわかりやすく解説します。サンプルコード<?php function string_convert($my_date){ $sec = strtotime($my_date); $my_date