PHPでタイムスタンプを取得する方法について

採用はこちら

PHPでタイムスタンプを取得する方法はいくつかあります。

もっとも基本的なのは、現在時刻のUnixタイムスタンプを取得できる time() です。

ただし、実務では「秒単位でよいのか」「ミリ秒まで必要なのか」「日本時間として扱いたいのか」「WordPressで使うのか」などによって、適切な書き方が変わります。

この記事では、PHPでタイムスタンプを取得する方法を、基本から実務での注意点まで詳しく解説します。

目次

タイムスタンプとは

Unixタイムスタンプの意味

Unixタイムスタンプとは、1970年1月1日 00:00:00 UTCからの経過秒数を表す数値です。

たとえば、次のような値です。

1717382400

この数値は、人間が見てもすぐには日時が分かりませんが、プログラムでは日付の比較や計算に使いやすい形式です。

たとえば、以下のような処理に使われます。

<?php
$now = time();

echo $now;

time() を実行すると、現在時刻のUnixタイムスタンプが秒単位で返されます。

タイムスタンプにはタイムゾーン情報が含まれない

注意したいのは、Unixタイムスタンプ自体にはタイムゾーン情報が含まれないという点です。

たとえば、次のように取得した値は、

<?php
$timestamp = time();

「日本時間のタイムスタンプ」ではありません。

Unixタイムスタンプは、ある瞬間を表す数値です。

日本時間として表示するか、UTCとして表示するか、アメリカ時間として表示するかは、表示時のタイムゾーン設定によって変わります。

そのため、日時を表示するときは、タイムゾーンを意識する必要があります。

現在のタイムスタンプを取得する方法

time() を使う

PHPで現在のUnixタイムスタンプを取得するもっとも基本的な方法は、time() を使うことです。

<?php
$timestamp = time();

echo $timestamp;

出力例は次のようになります。

1717382400

time() は、現在時刻をUnixタイムスタンプとして秒単位で返します。

シンプルに現在時刻を記録したい場合は、基本的に time() を使えば問題ありません。

time() が向いているケース

time() は、次のような場面に向いています。

<?php
$createdAt = time();
$updatedAt = time();

たとえば、以下のような用途です。

  • ログの記録
  • 作成日時の保存
  • 更新日時の保存
  • 有効期限の判定
  • 一定時間後の処理

たとえば、1時間後のタイムスタンプを作りたい場合は、次のように書けます。

<?php
$expiresAt = time() + 60 * 60;

echo $expiresAt;

60 * 60 は3600秒、つまり1時間です。

time() 使用時の注意点

time() は便利ですが、返す値はあくまで秒単位のUnixタイムスタンプです。

そのため、次のような用途では不十分な場合があります。

<?php
$timestamp = time();

たとえば、JavaScriptの Date.now() と合わせたい場合は注意が必要です。

JavaScriptの Date.now() はミリ秒単位です。

console.log(Date.now());

PHPの time() は秒単位です。

<?php
echo time();

桁数が異なるため、PHPとJavaScriptを連携する場合は、秒とミリ秒を混同しないようにしましょう。

DateTimeImmutable でタイムスタンプを取得する方法

DateTimeImmutable の基本

PHPで日時を安全に扱いたい場合は、DateTimeImmutable を使うのがおすすめです。

<?php
$date = new DateTimeImmutable();

$timestamp = $date->getTimestamp();

echo $timestamp;

DateTimeImmutable は日時を表すオブジェクトです。

getTimestamp() を使うことで、その日時に対応するUnixタイムスタンプを取得できます。

DateTimeImmutable を使うメリット

DateTimeImmutable を使うメリットは、タイムゾーンや日付計算を扱いやすいことです。

たとえば、日本時間を明示して現在日時を扱う場合は、次のように書きます。

<?php
$date = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));

$timestamp = $date->getTimestamp();

echo $timestamp;

このように書くことで、日時を扱うときのタイムゾーンを明示できます。

ただし、同じ瞬間を表すUnixタイムスタンプは、タイムゾーンが違っても同じ値になります。

<?php
$tokyo = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));
$utc   = new DateTimeImmutable('now', new DateTimeZone('UTC'));

echo $tokyo->getTimestamp() . PHP_EOL;
echo $utc->getTimestamp() . PHP_EOL;

この2つは、同じ瞬間に生成されれば、ほぼ同じタイムスタンプになります。

タイムゾーンは、主に「日時文字列をどう解釈するか」「日時をどう表示するか」に影響します。

DateTimeImmutable が向いているケース

DateTimeImmutable は、次のような場面に向いています。

  • タイムゾーンを明示したい
  • 日付文字列を安全に扱いたい
  • 日付計算をしたい
  • 表示形式を柔軟に変えたい
  • ミリ秒やマイクロ秒を扱いたい
  • 実務で日時のバグを減らしたい

単純に現在のUnixタイムスタンプを取るだけなら time() で十分です。

しかし、日時処理が少しでも複雑になるなら、DateTimeImmutable を使ったほうが安全です。

ミリ秒単位のタイムスタンプを取得する方法

DateTimeImmutable でミリ秒を取得する

PHPでミリ秒単位のタイムスタンプを取得したい場合は、DateTimeImmutableformat() を使えます。

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');

echo $timestampMs;

format('U') はUnixタイムスタンプの秒を表します。

format('v') はミリ秒を表します。

そのため、format('Uv') と書くことで、秒とミリ秒を連結した13桁のタイムスタンプを取得できます。

出力例は次のようになります。

1717382400123

ミリ秒タイムスタンプは文字列で扱うのが安全

ミリ秒単位のタイムスタンプは、13桁程度になります。

1717382400123

64bit環境のPHPであれば整数として扱えることが多いですが、環境によっては桁あふれの問題が起きる可能性があります。

そのため、特に理由がなければ、ミリ秒タイムスタンプは文字列として扱うのが安全です。

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');

数値として比較や計算をしたい場合だけ、必要に応じて整数に変換しましょう。

<?php
$timestampMs = (int) (new DateTimeImmutable())->format('Uv');

ただし、古い32bit環境などでは注意が必要です。

microtime(true) でミリ秒を取得する

microtime(true) を使ってミリ秒タイムスタンプを取得することもできます。

<?php
$timestampMs = (int) round(microtime(true) * 1000);

echo $timestampMs;

microtime(true) は、マイクロ秒を含む現在のUnixタイムスタンプをfloatで返します。

処理時間の計測や、簡易的なミリ秒取得ではよく使われます。

ただし、microtime(true) はfloatであるため、厳密な値が必要な場面では注意が必要です。

現在時刻のミリ秒タイムスタンプを扱うだけなら、次の書き方のほうが分かりやすいです。

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');

マイクロ秒単位のタイムスタンプを取得する方法

format('Uu') を使う

マイクロ秒単位のタイムスタンプを取得したい場合は、format('Uu') を使います。

<?php
$timestampUs = (new DateTimeImmutable())->format('Uu');

echo $timestampUs;

U は秒、u はマイクロ秒を表します。

出力例は次のようになります。

1717382400123456

マイクロ秒タイムスタンプも文字列で扱う

マイクロ秒タイムスタンプは16桁程度になります。

そのため、ミリ秒よりもさらに桁数が大きくなります。

<?php
$timestampUs = (new DateTimeImmutable())->format('Uu');

このように、まずは文字列として扱うのが安全です。

数値計算が必要な場合のみ、環境を確認したうえで整数に変換しましょう。

<?php
$timestampUs = (int) (new DateTimeImmutable())->format('Uu');

ただし、環境によっては正しく扱えない可能性があります。

処理時間の計測なら hrtime() も検討する

マイクロ秒やナノ秒レベルで処理時間を計測したい場合は、現在時刻のタイムスタンプではなく、hrtime() を使う方法もあります。

<?php
$start = hrtime(true);

// 何らかの処理

$end = hrtime(true);

echo $end - $start;

hrtime(true) は高精度な時間計測に向いています。

現在日時を記録するなら DateTimeImmutablemicrotime()、処理時間を測るなら hrtime()、というように使い分けるとよいでしょう。

日付文字列からタイムスタンプを取得する方法

strtotime() を使う

日付文字列からUnixタイムスタンプを取得したい場合は、strtotime() がよく使われます。

<?php
$timestamp = strtotime('2026-06-03 12:00:00');

echo $timestamp;

strtotime() は、日付や時刻を表す文字列をUnixタイムスタンプに変換します。

次のような相対的な指定も可能です。

<?php
echo strtotime('tomorrow');
echo PHP_EOL;

echo strtotime('+1 week');
echo PHP_EOL;

echo strtotime('last Monday');

簡単な日時変換であれば、strtotime() は便利です。

strtotime() の失敗判定

strtotime() は、変換に失敗した場合に false を返します。

そのため、次のように判定します。

<?php
$timestamp = strtotime($input);

if ($timestamp === false) {
    echo '日付の変換に失敗しました';
} else {
    echo $timestamp;
}

ここで重要なのは、=== false を使うことです。

次のような書き方は避けたほうがよいです。

<?php
$timestamp = strtotime($input);

if (!$timestamp) {
    echo '日付の変換に失敗しました';
}

この書き方だと、タイムスタンプ 0 が返った場合にも失敗として扱われる可能性があります。

タイムスタンプ 0 は、1970-01-01 00:00:00 UTC を表す有効な値です。

そのため、失敗判定では必ず厳密比較を使いましょう。

<?php
if ($timestamp === false) {
    echo '日付の変換に失敗しました';
}

strtotime() はデフォルトタイムゾーンの影響を受ける

strtotime() を使う場合、タイムゾーンにも注意が必要です。

<?php
$timestamp = strtotime('2026-06-03 12:00:00');

このコードでは、2026-06-03 12:00:00 がどのタイムゾーンの日時として解釈されるかは、PHPのデフォルトタイムゾーン設定に依存します。

日本時間として明示的に扱いたい場合は、DateTimeImmutable を使うほうが安全です。

<?php
$date = new DateTimeImmutable(
    '2026-06-03 12:00:00',
    new DateTimeZone('Asia/Tokyo')
);

$timestamp = $date->getTimestamp();

echo $timestamp;

実務では、日付文字列を正確に扱いたい場合、strtotime() より DateTimeImmutable のほうが安心です。

タイムスタンプを日時文字列に変換する方法

date() を使う

Unixタイムスタンプを人間が読める日時に変換するには、date() を使います。

<?php
$timestamp = time();

echo date('Y-m-d H:i:s', $timestamp);

出力例は次のようになります。

2026-06-03 15:30:00

date() は、指定したフォーマットに従って日時文字列を返します。

よく使うフォーマットは次の形です。

<?php
echo date('Y-m-d H:i:s');

これは、次のような形式で出力されます。

2026-06-03 15:30:00

date() はデフォルトタイムゾーンの影響を受ける

date() で表示される日時は、PHPのデフォルトタイムゾーンに影響されます。

日本時間で表示したい場合は、次のように設定します。

<?php
date_default_timezone_set('Asia/Tokyo');

echo date('Y-m-d H:i:s');

ただし、アプリケーション全体でタイムゾーンを設定する場合は、共通設定ファイルなどで一度だけ指定するのが一般的です。

<?php
// config.php など
date_default_timezone_set('Asia/Tokyo');

DateTimeImmutable で日本時間に変換する

より明示的にタイムゾーンを扱いたい場合は、DateTimeImmutable を使います。

<?php
$timestamp = time();

$date = new DateTimeImmutable('@' . $timestamp);
$date = $date->setTimezone(new DateTimeZone('Asia/Tokyo'));

echo $date->format('Y-m-d H:i:s');

@ を使うことで、Unixタイムスタンプから DateTimeImmutable オブジェクトを作成できます。

<?php
$date = new DateTimeImmutable('@1717382400');

ただし、このままだとUTC基準で扱われるため、日本時間で表示したい場合は setTimezone() を使います。

<?php
$date = $date->setTimezone(new DateTimeZone('Asia/Tokyo'));

タイムゾーンを指定してタイムスタンプを扱う方法

date_default_timezone_set() を使う

PHP全体のデフォルトタイムゾーンを設定したい場合は、date_default_timezone_set() を使います。

<?php
date_default_timezone_set('Asia/Tokyo');

echo date('Y-m-d H:i:s');

これにより、date()strtotime() などの日時関数で、デフォルトタイムゾーンとして Asia/Tokyo が使われます。

DateTimeZone を使う

個別の日時処理でタイムゾーンを指定したい場合は、DateTimeZone を使います。

<?php
$timezone = new DateTimeZone('Asia/Tokyo');

$date = new DateTimeImmutable('now', $timezone);

echo $date->format('Y-m-d H:i:s');

実務では、重要な日時処理ほど DateTimeZone を明示するのがおすすめです。

グローバルな設定に頼りすぎると、別の環境に移したときや、複数のタイムゾーンを扱うときにバグが起きやすくなります。

タイムゾーンを指定してもUnixタイムスタンプの考え方は同じ

次のコードを見てください。

<?php
$tokyo = new DateTimeImmutable('2026-06-03 12:00:00', new DateTimeZone('Asia/Tokyo'));
$utc   = new DateTimeImmutable('2026-06-03 03:00:00', new DateTimeZone('UTC'));

echo $tokyo->getTimestamp() . PHP_EOL;
echo $utc->getTimestamp() . PHP_EOL;

2026-06-03 12:00:00 の日本時間は、UTCでは 2026-06-03 03:00:00 です。

この2つは同じ瞬間を表すため、取得されるUnixタイムスタンプは同じになります。

データベースにタイムスタンプを保存する方法

Unixタイムスタンプを整数で保存する

データベースにUnixタイムスタンプを保存する場合は、整数型のカラムを使います。

秒単位のUnixタイムスタンプであれば、次のように保存できます。

created_at INT

PHP側では次のように取得します。

<?php
$createdAt = time();

SQLに保存するイメージは次のようになります。

INSERT INTO posts (title, created_at)
VALUES ('テスト記事', 1717382400);

Unixタイムスタンプで保存すると、比較や計算がしやすいというメリットがあります。

SELECT *
FROM posts
WHERE created_at >= 1717382400;

ミリ秒タイムスタンプは BIGINT を使う

ミリ秒単位のタイムスタンプを保存する場合は、13桁程度になります。

1717382400123

この場合、INT では足りない可能性があります。

そのため、ミリ秒タイムスタンプを保存する場合は BIGINT を使いましょう。

created_at_ms BIGINT

PHP側では次のように取得します。

<?php
$createdAtMs = (new DateTimeImmutable())->format('Uv');

DBに保存するときは、文字列として扱うか、DB側で BIGINT として保存します。

DATETIMETIMESTAMP 型で保存する

日時を人間が読みやすい形で保存したい場合は、DATETIMETIMESTAMP 型を使う方法もあります。

created_at DATETIME

PHP側では次のように日時文字列を作れます。

<?php
$now = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));

$createdAt = $now->format('Y-m-d H:i:s');

SQLでは次のように保存できます。

INSERT INTO posts (title, created_at)
VALUES ('テスト記事', '2026-06-03 15:30:00');

Webアプリケーションでは、日時型を使うことも多いです。

実務では、以下のような設計がよく使われます。

DBにはUTCで保存する
表示時にユーザーのタイムゾーンへ変換する

日本向けのサービスだけであれば、最初から日本時間で統一する設計もあります。

ただし、将来的に海外展開やAPI連携がある場合は、UTC保存のほうが扱いやすいことが多いです。

WordPressでタイムスタンプを取得する方法

通常のUnixタイムスタンプなら time() を使う

WordPressで通常のUnixタイムスタンプを取得したい場合は、基本的にPHP標準の time() を使えます。

<?php
$timestamp = time();

これは、通常のUnixタイムスタンプです。

保存や比較に使う場合も分かりやすいです。

<?php
$expiresAt = time() + 7 * 24 * 60 * 60;

これは、現在時刻から7日後のUnixタイムスタンプを作る例です。

WordPressのサイトタイムゾーンを使うなら current_datetime()

WordPressの管理画面で設定されているサイトタイムゾーンを考慮したい場合は、current_datetime() を使うのがおすすめです。

<?php
$now = current_datetime();

echo $now->format('Y-m-d H:i:s');

current_datetime() は、WordPressのサイトタイムゾーンを反映した DateTimeImmutable オブジェクトを返します。

Unixタイムスタンプが必要な場合は、次のように getTimestamp() を使えます。

<?php
$now = current_datetime();

$timestamp = $now->getTimestamp();

echo $timestamp;

current_time('timestamp') は安易に使わない

WordPressには、current_time() という関数もあります。

<?php
$currentTime = current_time('timestamp');

ただし、current_time('timestamp') は通常のUnixタイムスタンプとは異なる値になることがあります。

WordPressのタイムゾーン設定やGMTオフセットの影響を受けるため、保存や比較に使う場合は注意が必要です。

そのため、実務では次のように使い分けるのが安全です。

<?php
// 通常のUnixタイムスタンプ
$timestamp = time();

// WordPressのサイトタイムゾーンに基づく日時
$now = current_datetime();

保存・比較には time()、WordPressのサイト設定に沿った表示や日時処理には current_datetime() を使うと分かりやすいです。

目的別のおすすめコード

現在のUnixタイムスタンプを秒で取得する

<?php
$timestamp = time();

echo $timestamp;

もっとも基本的な方法です。

単純に現在時刻を秒単位で記録したい場合に使います。

現在のUnixタイムスタンプをミリ秒で取得する

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');

echo $timestampMs;

JavaScriptや外部APIと連携する場合に便利です。

現在のUnixタイムスタンプをマイクロ秒で取得する

<?php
$timestampUs = (new DateTimeImmutable())->format('Uu');

echo $timestampUs;

高精度なログや、細かい時刻情報が必要な場合に使えます。

日付文字列からタイムスタンプを取得する

<?php
$date = new DateTimeImmutable(
    '2026-06-03 12:00:00',
    new DateTimeZone('Asia/Tokyo')
);

$timestamp = $date->getTimestamp();

echo $timestamp;

タイムゾーンを明示したい場合は、strtotime() よりもこの方法が安全です。

タイムスタンプを日本時間で表示する

<?php
$timestamp = time();

$date = new DateTimeImmutable('@' . $timestamp);
$date = $date->setTimezone(new DateTimeZone('Asia/Tokyo'));

echo $date->format('Y-m-d H:i:s');

Unixタイムスタンプを日本時間の日時文字列として表示できます。

1時間後のタイムスタンプを取得する

<?php
$oneHourLater = time() + 60 * 60;

echo $oneHourLater;

有効期限や予約処理などに使えます。

7日後のタイムスタンプを取得する

<?php
$sevenDaysLater = time() + 7 * 24 * 60 * 60;

echo $sevenDaysLater;

会員登録メールの有効期限や、キャンペーン終了日の管理などに使えます。

日付計算を DateTimeImmutable で行う

<?php
$now = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));

$nextWeek = $now->modify('+1 week');

echo $nextWeek->format('Y-m-d H:i:s');
echo PHP_EOL;
echo $nextWeek->getTimestamp();

日付計算が複雑になる場合は、秒数を直接足すよりも modify() を使うほうが分かりやすいです。

よくあるミスと注意点

秒とミリ秒を混同する

PHPの time() は秒単位です。

<?php
echo time();

出力例は次のようになります。

1717382400

一方、JavaScriptの Date.now() はミリ秒単位です。

console.log(Date.now());

出力例は次のようになります。

1717382400123

PHPとJavaScriptを連携するときは、桁数の違いに注意しましょう。

PHPの秒をJavaScript側のミリ秒に合わせるなら、次のようにします。

<?php
$timestampMs = time() * 1000;

ただし、より正確に現在のミリ秒を取得したい場合は、次の書き方がおすすめです。

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');

タイムスタンプにタイムゾーンが含まれると思ってしまう

Unixタイムスタンプ自体には、タイムゾーン情報は含まれません。

<?php
$timestamp = time();

この値は、「日本時間のタイムスタンプ」ではありません。

日本時間として表示したい場合は、次のように変換します。

<?php
$date = new DateTimeImmutable('@' . $timestamp);
$date = $date->setTimezone(new DateTimeZone('Asia/Tokyo'));

echo $date->format('Y-m-d H:i:s');

strtotime() の失敗判定を間違える

次のような書き方は避けましょう。

<?php
$timestamp = strtotime($input);

if (!$timestamp) {
    echo '変換失敗';
}

正しくは、次のように === false を使います。

<?php
$timestamp = strtotime($input);

if ($timestamp === false) {
    echo '変換失敗';
}

strtotime() のタイムゾーン依存を忘れる

次のコードは、実行環境のデフォルトタイムゾーンに依存します。

<?php
$timestamp = strtotime('2026-06-03 12:00:00');

日本時間として明示的に扱いたい場合は、次のように書くほうが安全です。

<?php
$date = new DateTimeImmutable(
    '2026-06-03 12:00:00',
    new DateTimeZone('Asia/Tokyo')
);

$timestamp = $date->getTimestamp();

ミリ秒タイムスタンプを INT に保存してしまう

ミリ秒タイムスタンプは13桁程度になります。

1717382400123

これをDBの INT カラムに保存しようとすると、桁が足りない可能性があります。

ミリ秒タイムスタンプを保存するなら、BIGINT を使いましょう。

created_at_ms BIGINT

time()DateTimeImmutable の使い分け

単純な現在時刻の記録なら time()

現在のUnixタイムスタンプを秒単位で取得したいだけなら、time() がシンプルです。

<?php
$timestamp = time();

たとえば、次のような用途に向いています。

  • 作成日時の保存
  • 更新日時の保存
  • 有効期限の保存
  • 簡単な時間比較

日時処理が絡むなら DateTimeImmutable

タイムゾーン、日付計算、表示形式の変換などが絡む場合は、DateTimeImmutable を使うのがおすすめです。

<?php
$now = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));

echo $now->format('Y-m-d H:i:s');
echo PHP_EOL;
echo $now->getTimestamp();

日時処理は、シンプルに見えてもバグが起きやすい部分です。

特に、以下のような場合は DateTimeImmutable を使うと安全です。

  • 日本時間とUTCを変換する
  • 日付文字列を扱う
  • 月末や翌月を計算する
  • 夏時間がある国の日時を扱う
  • APIと日時をやり取りする
  • DB保存用と表示用で形式を分ける

PHPでタイムスタンプを取得する場合のまとめ

基本は time() を使う

現在のUnixタイムスタンプを秒単位で取得するだけなら、次のコードで十分です。

<?php
$timestamp = time();

シンプルで分かりやすく、多くの場面で使えます。

ミリ秒・マイクロ秒は DateTimeImmutable を使う

ミリ秒やマイクロ秒が必要な場合は、次のように書きます。

<?php
$timestampMs = (new DateTimeImmutable())->format('Uv');
$timestampUs = (new DateTimeImmutable())->format('Uu');

桁数が大きくなるため、基本的には文字列として扱うのがおすすめです。

日付文字列を扱うならタイムゾーンを明示する

日付文字列からタイムスタンプを取得する場合は、DateTimeImmutableDateTimeZone を使うと安全です。

<?php
$date = new DateTimeImmutable(
    '2026-06-03 12:00:00',
    new DateTimeZone('Asia/Tokyo')
);

$timestamp = $date->getTimestamp();

strtotime() も便利ですが、デフォルトタイムゾーンに依存するため、厳密な日時処理では注意が必要です。

WordPressでは time()current_datetime() を使い分ける

WordPressで通常のUnixタイムスタンプが欲しい場合は、time() を使います。

<?php
$timestamp = time();

WordPressのサイトタイムゾーンを反映した日時を扱いたい場合は、current_datetime() を使います。

<?php
$now = current_datetime();

echo $now->format('Y-m-d H:i:s');

current_time('timestamp') は通常のUnixタイムスタンプとは異なる値になることがあるため、保存や比較に使う場合は注意しましょう。

目的別の早見表

PHPで現在時刻を取得したい場合

目的書き方
秒単位のUnixタイムスタンプtime()
ミリ秒単位のタイムスタンプ(new DateTimeImmutable())->format('Uv')
マイクロ秒単位のタイムスタンプ(new DateTimeImmutable())->format('Uu')
日本時間の現在日時new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'))
日付文字列から変換new DateTimeImmutable(...)->getTimestamp()
タイムスタンプを日時表示date('Y-m-d H:i:s', $timestamp)
日本時間で日時表示setTimezone(new DateTimeZone('Asia/Tokyo'))
WordPressの通常タイムスタンプtime()
WordPressのサイト日時current_datetime()

実務でおすすめの使い分け

実務では、以下のように使い分けると分かりやすいです。

<?php
// 単純な現在時刻の記録
$timestamp = time();

// ミリ秒が必要なAPI連携
$timestampMs = (new DateTimeImmutable())->format('Uv');

// 日本時間の表示
$date = new DateTimeImmutable('@' . $timestamp);
$date = $date->setTimezone(new DateTimeZone('Asia/Tokyo'));

echo $date->format('Y-m-d H:i:s');

単純な用途では time()、日時処理が絡む場合は DateTimeImmutable

この使い分けを覚えておくと、PHPのタイムスタンプ処理で迷いにくくなります。

以上、PHPでタイムスタンプを取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次