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

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

この記事では、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"です。Date を「Unix タイムスタンプ」に変換するため、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 で現在の年を取得する方法
  • PHP で DateTime を文字列に変換する方法
  • 関連記事 - PHP Timestamp

  • PHP でタイムスタンプを読み取り可能な日付または時刻に変換する方法
  • PHP を使用して 2つの日付の差を計算する方法
  • comments powered by Disqus