よっしー
こんにちは。よっしーです(^^)
今日は、PHPでUNIXタイムスタンプとDateTime型の相互変換する方法についてご紹介します。
背景
PHPでUNIXタイムスタンプとDateTime型の相互変換するときの内容を備忘として残しています。
DateTime型からUNIXタイムスタンプに変換
使用したソースは下記になります。
$dt = new DateTime();
$timestamp = $dt->getTimestamp();
echo $timestamp . PHP_EOL;
UNIXタイムスタンプからDateTime型に変換
使用したソースは下記になります。
$timestamp = time();
$dt = new DateTime("@$timestamp");
echo $dt->format('Y-m-d H:i:s') . PHP_EOL;
解説
上記のコードをまとめて、下記のようにしました。
<?php
$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s') . PHP_EOL;
$timestamp = $dt->getTimestamp();
echo $timestamp . PHP_EOL;
$dt = new DateTime("@$timestamp");
echo $dt->format('Y-m-d H:i:s') . PHP_EOL;
このPHPコードは、現在の日時を取得し、それをUNIXタイムスタンプに変換し、再び日時に戻すという処理を行っています。具体的には以下のような操作を行っています:
$dt = new DateTime();
:現在の日時を取得し、それをDateTime
オブジェクトとして$dt
に格納します。echo $dt->format('Y-m-d H:i:s') . PHP_EOL;
:$dt
の日時をY-m-d H:i:s
形式(年-月-日 時:分:秒)で出力します。PHP_EOL
は改行を表します。$timestamp = $dt->getTimestamp();
:$dt
のUNIXタイムスタンプ(1970年1月1日からの経過秒数)を取得し、それを$timestamp
に格納します。echo $timestamp . PHP_EOL;
:取得したUNIXタイムスタンプを出力します。$dt = new DateTime("@$timestamp");
:UNIXタイムスタンプをDateTime
オブジェクトに変換します。@
記号はUNIXタイムスタンプを表します。echo $dt->format('Y-m-d H:i:s') . PHP_EOL;
:再び$dt
の日時をY-m-d H:i:s
形式で出力します。
以上が、このコードの解説です。これらの操作は、日時とUNIXタイムスタンプの相互変換を行うための一般的な手法です。ただし、具体的な設定は使用環境や要件により異なるため、適切な設定を行うことが重要です。また、このコードはPHPのDateTimeクラスを必要とするため、注意深く使用する必要があります。不適切な使用は、データの精度を脅かす可能性があります。ご理解の上、適切にご使用ください。
おわりに
今日は、PHPでUNIXタイムスタンプとDateTime型の相互変換する方法についてご紹介しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント