現在の位置: ホーム> 最新記事一覧> 特定の日付とGMDATEとStrtoTimeを組み合わせた処理

特定の日付とGMDATEとStrtoTimeを組み合わせた処理

gitbox 2025-05-26

PHPでは、処理とフォーマットの日付が開発において一般的な要件です。 gmdate()strtotime()は、タイムストリングをタイムスタンプに変換し、GMT(Greenwich Standard Time)形式でそれらを出力するのに役立つ2つの非常に実用的な関数です。しかし、これら2つの機能を正しく組み合わせて、指定された日時をフォーマットするにはどうすればよいですか?この記事では詳細に説明します。

1。strtotime ()の紹介

strtotime()は、英語のテキストの日付の説明をUNIXタイムスタンプに解析するために使用されます(つまり、1970年1月1日から秒数)。次のようなさまざまな一般的な日付形式をサポートしています。

 <?php
$timestamp = strtotime('2025-05-22 15:30:00');
echo $timestamp;
?>

上記のコードは、整数のタイムスタンプを出力します。

2。gmdate ()の紹介

gmdate()date()に似ていますが、現在のサーバータイムゾーンの時間ではなく、グリニッジ標準時間(GMT)を出力します。最初のパラメーターは日付形式の文字列で、2番目のパラメーターはタイムスタンプです。

 <?php
echo gmdate('Y-m-d H:i:s', time());
?>

これにより、現在のGMT時間が出力されます。

3.組み合わせて使用​​する方法

これら2つの関数を組み合わせる典型的な使用法は、次のとおりです。

  • strtotime()を使用して、文字列の日付と時刻をタイムスタンプに変換します

  • gmdate()を使用して、目的のgmt形式の文字列にタイムスタンプをフォーマットします

例:

 <?php
$input_date = '2025-05-22 15:30:00';
$timestamp = strtotime($input_date);
$formatted_date = gmdate('Y-m-d H:i:s', $timestamp);
echo $formatted_date;
?>

ここでは、サーバータイムゾーンに関係なく、指定された日付と時刻はGMT時間として出力されます。

4。注意すべきこと

  • strtotime()に入力された文字列は有効な日付形式である必要があります。それ以外の場合は、 falseが返されます。

  • gmdate()はGMT時間を出力します。現地時間が必要な場合は、代わりにdate()を使用する必要があります。

  • 結合したら、入力時間文字列のタイムゾーンの意味が明確であることを確認します。そうしないと、時間偏差が発生する可能性があります。

5。高度な使用法

指定されたタイムゾーンで文字列時間を解析し、GMTに変換する場合があります。

 <?php
$date = new DateTime('2025-05-22 15:30:00', new DateTimeZone('Asia/Shanghai'));
$date->setTimezone(new DateTimeZone('GMT'));
echo $date->format('Y-m-d H:i:s');
?>

これにより、タイムゾーンの変換を処理する柔軟性が向上します。


上記は、指定された日付と時刻をGMDATEおよびSTRTOTIMEと組み合わせて正しくフォーマットする方法です。それをマスターすると、時間形式とタイムゾーンの問題を効果的に回避し、日付と時刻の処理の精度を向上させることができます。


 <?php
// サンプルコード:指定された時間文字列をに変換します GMT フォーマット時間出力
$input_date = '2025-05-22 15:30:00';
$timestamp = strtotime($input_date);
if ($timestamp === false) {
    echo '無効な時間形式';
} else {
    echo gmdate('Y-m-d H:i:s', $timestamp);
}
?>

 <?php
// 使用 DateTime クラスはタイムゾーンをより正確に処理します
$date = new DateTime('2025-05-22 15:30:00', new DateTimeZone('Asia/Shanghai'));
$date->setTimezone(new DateTimeZone('GMT'));
echo $date->format('Y-m-d H:i:s');
?>

関連するドキュメントを参照する必要がある場合は、以下にアクセスできます。

https://gitbox.net/manual/en/function.gmdate.php
https://gitbox.net/manual/en/function.strtotime.php
https://gitbox.net/manual/en/class.datetime.php