PHP入門:UNIXタイムスタンプとDateTime型の相互変換について

スポンサーリンク
PHP入門:UNIXタイムスタンプとDateTime型の相互変換について ノウハウ
PHP入門:UNIXタイムスタンプとDateTime型の相互変換について
この記事は約3分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、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タイムスタンプに変換し、再び日時に戻すという処理を行っています。具体的には以下のような操作を行っています:

  1. $dt = new DateTime();:現在の日時を取得し、それをDateTimeオブジェクトとして$dtに格納します。
  2. echo $dt->format('Y-m-d H:i:s') . PHP_EOL;$dtの日時をY-m-d H:i:s形式(年-月-日 時:分:秒)で出力します。PHP_EOLは改行を表します。
  3. $timestamp = $dt->getTimestamp();$dtのUNIXタイムスタンプ(1970年1月1日からの経過秒数)を取得し、それを$timestampに格納します。
  4. echo $timestamp . PHP_EOL;:取得したUNIXタイムスタンプを出力します。
  5. $dt = new DateTime("@$timestamp");:UNIXタイムスタンプをDateTimeオブジェクトに変換します。@記号はUNIXタイムスタンプを表します。
  6. echo $dt->format('Y-m-d H:i:s') . PHP_EOL;:再び$dtの日時をY-m-d H:i:s形式で出力します。

以上が、このコードの解説です。これらの操作は、日時とUNIXタイムスタンプの相互変換を行うための一般的な手法です。ただし、具体的な設定は使用環境や要件により異なるため、適切な設定を行うことが重要です。また、このコードはPHPのDateTimeクラスを必要とするため、注意深く使用する必要があります。不適切な使用は、データの精度を脅かす可能性があります。ご理解の上、適切にご使用ください。

おわりに

今日は、PHPでUNIXタイムスタンプとDateTime型の相互変換する方法についてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました