更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/21 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
日付・時刻の配列を表示する場合、次の記事で載せている関数を使用しています。
サンプルプログラムの実行結果に載せている画面とHTMLは違う時間で取得したため、実行結果の時間はずれています。
時刻、日付の取得
時刻、日付の取得では、次の関数について説明します。
関数 | オブジェクト指向 | 説明(PHPマニュアル抜粋) |
---|---|---|
date_create | DateTime() | 新しい DateTime オブジェクトを返す |
getdate | – | 日付・時刻を取得する |
gettimeofday | – | 現在の時間を取得する |
date_create/DateTime()
date_create()関数の内部でDateTime()を呼び出すため、DateTime()のエイリアス(別名)関数と呼ばれます。
これらの関数を使用したサンプルプログラムは次の通りです。
返却値がUNXIタイムスタンプのため、見やすくなるようにdate_format()、DateTime()->format()関数を使用しています。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】関数<br>\n";
echo "日付・時刻関数:date_create()、DateTime()<br>\n";
echo "タイムゾーン指定なし(GWT時間)<br>\n";
$dt1 = new DateTime();
echo 'DateTime():現在時刻:' . $dt1->format("Y/m/d H:i:s.v") . "<br>\n";
$dt2 = date_create();
echo 'date_create():現在時刻:' . date_format($dt2, "Y/m/d H:i:s.v") . "<br>\n";
echo "<br>\n";
echo "タイムゾーン個別指定(Asia/Tokyo)<br>\n";
$dt1 = new DateTime("now", new DateTimeZone("Asia/Tokyo"));
echo 'DateTime():現在時刻:' . $dt1->format("Y/m/d H:i:s.v") . "<br>\n";
$dt2 = date_create("now", new DateTimeZone("Asia/Tokyo"));
echo 'date_create():現在時刻:' . date_format($dt2, "Y/m/d H:i:s.v") . "<br>\n";
echo "<br>\n";
// デフォルトのタイムゾーンの指定
echo "デフォルトのタイムゾーン指定(Asia/Tokyo)<br>\n";
date_default_timezone_set("Asia/Tokyo");
$dt1 = new DateTime("2010/03/15 11:21:36");
echo 'DateTime():指定時刻:' . $dt1->format('Y/m/d H:i:s') . "<br>\n";
$dt2 = date_create("2010/03/15 11:21:36");
echo 'date_create():指定時刻:' . date_format($dt2, "Y/m/d H:i:s") . "<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_04_05.php<br>
【PHP】関数<br>
日付・時刻関数:date_create()、DateTime()<br>
タイムゾーン指定なし(GWT時間)<br>
DateTime():現在時刻:2021/06/21 01:16:01.299<br>
date_create():現在時刻:2021/06/21 01:16:01.299<br>
<br>
タイムゾーン個別指定(Asia/Tokyo)<br>
DateTime():現在時刻:2021/06/21 08:16:01.299<br>
date_create():現在時刻:2021/06/21 08:16:01.299<br>
<br>
デフォルトのタイムゾーン指定(Asia/Tokyo)<br>
DateTime():指定時刻:2010/03/15 11:21:36<br>
date_create():指定時刻:2010/03/15 11:21:36<br>
getdate
getdate()関数のサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】関数<br>\n";
echo "日付・時刻関数<br>\n";
echo '現在の時刻の取得:getdate()' . "<br>\n";
$today = getdate();
echo_array1_line($today);
echo '指定時刻の取得:getdate(1055901520)' . "<br>\n";
$date = getdate(1055901520); // int 型の Unix タイムスタンプを指定
echo_array1_line($date);
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_04_01.php<br>
【PHP】関数<br>
日付・時刻関数<br>
現在の時刻の取得:getdate()<br>
[seconds]:0:<br>
[minutes]:34:<br>
[hours]:6:<br>
[mday]:20:<br>
[wday]:0:<br>
[mon]:6:<br>
[year]:2021:<br>
[yday]:170:<br>
[weekday]:Sunday:<br>
[month]:June:<br>
[0]:1624163640:<br>
<br>
指定時刻の取得:getdate(1055901520)<br>
[seconds]:40:<br>
[minutes]:58:<br>
[hours]:3:<br>
[mday]:18:<br>
[wday]:3:<br>
[mon]:6:<br>
[year]:2003:<br>
[yday]:168:<br>
[weekday]:Wednesday:<br>
[month]:June:<br>
[0]:1055901520:<br>
<br>
返却される配列の詳細は次のPHPマニュアルを見てください。
PHP: getdate - Manual
gettimeofday
gettimeofday()関数のサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】関数<br>\n";
echo "日付・時刻関数<br>\n";
echo '現在の時間の取得(配列):gettimeofday()' . "<br>\n";
$time = gettimeofday();
echo_array1_line($time);
echo '現在の時間の取得(数値):gettimeofday(true)' . "<br>\n";
echo ":" . gettimeofday(true). ":<br>\n"; // int 型の Unix タイムスタンプで取得
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_04_02.php<br>
【PHP】関数<br>
日付・時刻関数<br>
現在の時間の取得(配列):gettimeofday()<br>
[sec]:1624164016:<br>
[usec]:179029:<br>
[minuteswest]:-120:<br>
[dsttime]:1:<br>
<br>
現在の時間の取得(数値):gettimeofday(true)<br>
:1624164016.1791:<br>
返却される配列の詳細は次のPHPマニュアルを見てください。
PHP: gettimeofday - Manual
コメント