目次
PHP の date と gmdate の違いは何ですか?
ホームページ バックエンド開発 PHPチュートリアル PHP の date と gmdate の違いは何ですか? _PHP チュートリアル

PHP の date と gmdate の違いは何ですか? _PHP チュートリアル

Jul 13, 2016 am 10:18 AM
date php 1つ そして 違い 持っている

PHP の date と gmdate の違いは何ですか?

1. PHP の date と gmdate の違いは何ですか?

PHP には、date() と gmdate() という 2 つの時刻の書式設定関数があります。公式ドキュメントの説明は次のとおりです。

日付 — 現地の時刻/日付をフォーマットします

gmdate — GMT/UTC 日付/時刻をフォーマットし、グリニッジ標準時 (GMT) を返します。

たとえば、現在のタイムゾーンが +8 の場合、次のスクリプトを実行するサーバーから返される時刻は次のようになります。

現在時刻を2007-03-14 12:15:27とする

echo date(‘Y-m-d H:i:s’, time()); 出力は次のようになります: 2007-03-14 12:15:27

echo gmdate(‘Y-m-d H:i:s’, time()); 出力は次のようになります: 2007-03-14 04:15:27

ただし、これは Linux+Apache で PHP を実行した場合の結果にすぎません。Windows で実行すると、2 つの関数は 2007-03-14 04:15:27 を返します。

したがって、互換性のある書き込みメソッドを提供し、一律に gmdate を使用し、現在のタイムゾーンを手動で設定する必要があります。 書き込みメソッドは次のように改善されます。

echo gmdate(‘Y-m-d H:i:s’, time() + 3600 * 8);

このようにすると、Linux+Apache であろうと Windows であろうと、正しい結果が得られます。もちろん、この方法で記述することには、Web サイトが全世界向けである場合、Web サイトのユーザーが設定するだけで済むという利点もあります。タイムゾーンは、ユーザーのタイムゾーンに応じて自動的に設定されます。タイムゾーンは、現在の時刻()によって生成された時刻のみをデータベースに保存します。中国 +8 タイム ゾーンで見られるのは: 2007-03-14 12:15:27、ヨーロッパ + タイム ゾーン 2 のユーザーでは、この情報のリリース時刻が: 2007-03-14 06:15:27 であることがわかります。情報のすべての時刻が正しい時刻に対応するようにします。

2. PHP のデフォルトのタイムゾーンを変更した場合の影響

各地域には独自の現地時間があり、インターネットや無線通信では、時間の変換の問題が特に顕著です。地球全体は 24 のタイムゾーンに分割されており、それぞれに独自の現地時間が存在します。国際的な無線通信やネットワーク通信の場面では、統一するために世界標準時(UTC)と呼ばれる世界標準時が定められた統一時刻が使用されます。 UTC はもともと、英国ロンドンの現地時間と同じグリニッジ標準時 (GMT、グリニッジ標準時) とも呼ばれていました。

PHPのデフォルトのタイムゾーン設定はUTC時間で、北京はUTCより8時間進んだタイムゾーンの東8区に位置しています。そのため、PHP の time() などの関数を使用して現在時刻を取得すると、取得される時刻は常に間違っており、北京時間とは 8 時間異なっています。北京時間を正しく表示したい場合は、デフォルトのタイムゾーン設定を変更する必要があります。これは次の 2 つの方法で行うことができます。

独立したサーバーを使用していて、設定ファイルを変更する権限がある場合は、php.ini の date.timezone 属性を変更することでタイムゾーンの設定を完了できます。この属性の値を「Asia/Shang」、「Asia/Chongqing」、「Etc/GMT-8」、または PRC などのいずれかに設定すると、PHP スクリプトで取得される現在時刻が北京時間になります。 PHP 構成ファイルを次のように変更します:

date.timezone = etc/GMT-8

//設定ファイルのデフォルトのタイムゾーンを東8区(北京時間)に設定します

共有サーバーを使用していて、設定ファイル php.ini を変更する権限がなく、PHP バージョンが 5.1.0 以降の場合は、時刻を出力する前に date_default_timezone_set() 関数を呼び出してタイムゾーンを設定することもできます。 。この関数は、パラメータとしてタイム ゾーン識別子を提供する必要があります。これは、構成ファイルの date.timezone 属性の値と同じです。この関数の使用方法は次のとおりです:

date_default_timezone_set(‘PRC’);

//時刻を出力する前にタイムゾーンを設定します。PRC は中華人民共和国です echo date('Y-m-d H:i:s', time());

//出力される現在時刻は北京時間です

3. テスト:

1. コードは次のとおりです。

date_default_timezone_set(‘Etc/GMT’);

//出力時刻の前にタイムゾーンを設定します。Etc/GMTは標準時刻です

echo(time());

echo(‘
’);

echo date(‘Y-m-d H:i:s’, time());

echo(‘
’);

echo gmdate (“Y-m-d H:i:s”, time());

echo(‘
’);

date_default_timezone_set(‘PRC’);

//出力時間の前にタイムゾーンを設定します。PRC は中華人民共和国です

echo(time());

echo(‘
’);

echo date(‘Y-m-d H:i:s’, time());

echo(‘
’);

echo gmdate (“Y-m-d H:i:s”, time());

?>

コードをコピー

2. 結果:

1276257131

2010-06-11 11:52:11

2010-06-11 11:52:11

1276257131

2010-06-11 19:52:11

2010-06-11 11:52:11

3. 結論:

(1) time(): 標準タイムスタンプ

Unix エポック (1970 年 1 月 1 日のグリニッジ標準時 00:00:00) からの秒数を現在の時刻 (現在の GMT 標準時刻を参照) に戻すことを指します。その値は時刻とは関係ありません。 PHP システムによって設定されたゾーン。

Date(): PHP システムによって設定されたタイムゾーンに関連する、現在の GMT 標準時間の現地時間の「カスタム形式」の時間を返します。

gmdate(): PHP システムによって設定されたタイムゾーンとは関係のない、現在の GMT 標準時間の「カスタム形式」の時間を返します。

(2) unix timestamp: 現在(GMT標準)時刻からunixエポック時刻(1970-01-01 00:00:00)までの秒数を指します;

コード:

date_default_timezone_set(‘Etc/GMT’);

//出力時刻の前にタイムゾーンを設定します。Etc/GMTは標準時刻です

echo(strtotime(’1970-01-01 08:00:00’));

echo(‘
’);

date_default_timezone_set(‘PRC’);

//出力時間の前にタイムゾーンを設定します。PRC は中華人民共和国です

echo(strtotime(’1970-01-01 08:00:00’));

?>

コードをコピー

テスト結果:

28800

0

Strtotime(a): 現在時刻のGMT標準時間のUNIXタイムスタンプ 現在のPHPシステムで設定されているタイムゾーンがGMT標準タイムゾーンではない場合、strtotime(a)が適用されるとシステムが自動的に変換します。 a を対応する標準時間に合わせて、この時間の UNIX タイムスタンプを計算します。これは、PHP システムによって設定されたタイムゾーンに関連しています

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/881293.html技術記事 PHP の date と gmdate の違いは何ですか? 1. PHP の date と gmdate の違いは何ですか? PHP には date() と gmdate() という 2 つの時間の書式設定関数があります。公式ドキュメントの説明は次のとおりです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

C言語関数の基本的な要件は何ですか C言語関数の基本的な要件は何ですか Apr 03, 2025 pm 10:06 PM

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

CとC#の違いと接続は何ですか? CとC#の違いと接続は何ですか? Apr 03, 2025 pm 10:36 PM

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。

XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? Apr 04, 2025 pm 11:15 PM

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Apr 05, 2025 pm 01:03 PM

Vueアプリケーションを開発するときに、ルーターフォルダーの下にindex.jsファイルにvuerouterを登録する必要性があるため、ルーティング構成で問題が発生することがよくあります。特別...

See all articles