PHP で日付をタイムスタンプに変換する方法

Minahil Noor 2023年1月30日
  1. PHP で strtotime() 関数を使用して日付をタイムスタンプに変換する
  2. PHP で strptime() 関数を使用して日付をタイムスタンプに変換する
  3. PHP で getTimestamp() 関数を使用して日付をタイムスタンプに変換する
  4. PHP で format() 関数を使用して日付をタイムスタンプに変換する
PHP で日付をタイムスタンプに変換する方法

この記事では、PHP で dateDateTime に変換するメソッドを紹介します。

  • strtotime() 関数を使用する
  • strptime() 関数を使用する
  • getTimestamp() 関数を使用する
  • format() 関数を使用する

PHP で strtotime() 関数を使用して日付をタイムスタンプに変換する

組み込み関数 strtotime() は日付を Unix タイムスタンプに変換します。Unix タイムスタンプは、Unix エポック(1970 年 1 月 1 日)から計算された合計秒数です。この関数を使用するための正しい構文は次のとおりです

strtotime($dateString,$timeNow);

この関数には 2つのパラメーターがあります。$dateString は、PHP 有効な形式に準拠する必要がある日付/時刻の文字列です。これは必須パラメーターです。他のパラメータ $timeNow はオプションで、相対日付の計算に使用されるタイムスタンプです。2 番目のパラメーターが省略されている場合、現在の時刻現在がデフォルト値です。

<?php
$timestamp = strtotime("23-04-2020");
echo "The timestamp is $timestamp.";
?>

ここでの日付の形式は"d-m-Y"です。dateUnix タイムスタンプに変換するため、1つのパラメータのみを渡しました。

出力:

The timestamp is 1587600000.

PHP で strptime() 関数を使用して日付をタイムスタンプに変換する

これは、日付を Unix のタイムスタンプに変換するもう 1つの関数です。date を直接 timestamp に変換しません。これは、秒、分、時間、およびその他のいくつかの詳細を示す配列を返します。これらの詳細を使用して、datetimestamp に変換できます。

strptime($dateString, $format);

2つの必須パラメーターがあります。$dateString は日付文字列で、$format$dateString を解析するための形式です。

<?php
$array = strptime('23-04-2020', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $array['tm_mon']+1, $array['tm_mday'], $array['tm_year']+1900);
echo "The timestamp is $timestamp.";
?>

出力:

The timestamp is 1587600000.

配列を生成した後、mktime() 関数は datetimestamp に変換します。

mktime() 関数の構文は

mktime(hour, minute, second, month, day, year, is_dst)

is_dst は日時が夏時間かどうかを指定しますが、PHP 7.0.0 から削除されました。

警告
$array['tm_mon']0 から始まるため、$array['tm_mon'] に 1 を加算し、その合計を monthmonth のパラメータとして使用します。つまり、、1 月の $array['tm_mon'] は 0 です。

PHP で getTimestamp() 関数を使用して日付をタイムスタンプに変換する

DateTime オブジェクトの getTimestamp() メソッドは、日付をタイムスタンプに変換する簡単なメソッドです。手続き型の表現である別の表現方法 date_timestamp_get() があります。

$datetimeObject->getTimestamp(); 

この関数を呼び出す Datetime オブジェクトを作成します。これは、関数を呼び出すオブジェクト指向のスタイルです。

<?php
$date = new DateTime('2020-04-23');
$timestamp = $date->getTimestamp();
echo "The timestamp is $timestamp.";
?>

Datetime クラスのオブジェクト $date は、メソッド getTimestamp() を呼び出して、date を Unix の timestamp に変換しました。

出力:

The timestamp is 1587600000.

PHP で format() 関数を使用して日付をタイムスタンプに変換する

DateTimeformat() メソッドを使用して、datetimestamp に変換することもできます。このメソッドには、format() 関数の手続き型の表現である別の表現 date_format() があります。

$datetimeObject->format("U"); 

datetimestamp に変換するには、文字列として渡す形式は "U"です。

<?php
$dateObject = new DateTime('2020-04-23');
$timestamp = $dateObject->format("U");
echo "The timestamp is $timestamp.";
?>

Datetime クラスのオブジェクト $dateObject は関数 format() を呼び出して日付を Unix の timestamp に変換しました。

出力:

The timestamp is 1587600000.

関連記事 - PHP DateTime

関連記事 - PHP Timestamp