更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/21 | JJI | ・”はじめに”の段落を追加 ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
日付・時刻の配列を表示する場合、次の記事で載せている関数を使用している場合があります。
サンプルプログラムの実行結果に載せている画面とHTMLは違う時間で取得したため、実行結果の時間はずれています。
日付・時刻の形式変換
PHPでは、日付・時刻は次のUNIXのタイムスタンプで管理しています。
通算秒のため、日付・時刻が分かりにくいため、通常、プログラ通算秒を年月日のような形式に変換して使用します。
PHPでは次の日付・時刻を変換する関数が存在しています。
この記事では、次の関数についてサンプルプログラムを使って説明します。
関数 | オブジェクト指向 | 説明(PHPマニュアル抜粋) |
---|---|---|
date_format | DateTime::format | 指定した書式でフォーマットした日付を返す この関数は |
date | – | ローカルの日付/時刻を書式化する |
strftime | – | ロケールの設定に基づいてローカルな日付・時間を フォーマットする |
strptime | – | strftime() が生成した日付/時刻をパースする |
date_format/DateTime::format
date_format()、DateTime::format()関数はそれぞれ、date_create()、DateTime()と一緒に使用することが多いです。
サンプルプログラム次の記事で見てください。
date_format()、DateTime::format()で指定可能な形式は次のPHPマニュアルを見てください。
PHP: DateTime::createFromFormat - Manual
また、指定可能なタイムゾーンは次のPHPマニュアルを見てください。
PHP: サポートされるタイムゾーンのリスト - Manual
date
date()関数はmktime()関数と一緒に使用することが多いです。
サンプルプログラムは次の記事を見てください。
strftime
strftime()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】関数<br>\n";
echo "日付・時刻関数:strftime()<br>\n";
echo "タイムゾーン指定なし(GWT)<br>\n";
echo '現在時刻:' . strftime("%Y/%m/%d %H:%M:%S") . "<br>\n";
echo "<br>\n";
echo "デフォルトのタイムゾーン指定(Asia/Tokyo)<br>\n";
date_default_timezone_set("Asia/Tokyo");
echo '現在時刻:' . strftime("%Y/%m/%d %H:%M:%S") . "<br>\n";
echo "<br>\n";
date_default_timezone_set("Asia/Tokyo");
echo '22時:' . strftime("%Y/%m/%d %H:%M:%S", mktime(22)) . "<br>\n";
echo "<br>\n";
date_default_timezone_set("Asia/Tokyo");
echo '22時10分37秒:' . strftime("%Y/%m/%d %H:%M:%S", mktime(22, 10, 37)) . "<br>\n";
echo "<br>\n";
date_default_timezone_set("Asia/Tokyo");
echo '2021年7月23日9時10分37秒:' . strftime("%Y/%m/%d %H:%M:%S", mktime(9, 10, 37, 7, 23, 2021)) . "<br>\n";
echo "<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_04_06.php<br>
【PHP】関数<br>
日付・時刻関数:strftime()<br>
タイムゾーン指定なし(GWT)<br>
現在時刻:2021/06/21 01:59:41<br>
<br>
デフォルトのタイムゾーン指定(Asia/Tokyo)<br>
現在時刻:2021/06/21 08:59:41<br>
<br>
22時:2021/06/21 22:59:41<br>
<br>
22時10分37秒:2021/06/21 22:10:37<br>
<br>
2021年7月23日9時10分37秒:2021/07/23 09:10:37<br>
<br>
strptime
strptime()関数は次のPHPマニュアルに書いているようにWindows環境では実装されていないため、動作確認ができていません。
PHP: strptime - Manual
コメント