ホームページ  >  記事  >  データベース  >  MySQL のダイレクトフェッチでは UTC が返されるのに、NodeJS では MySQL の日付が UTC 2 で返されるのはなぜですか?

MySQL のダイレクトフェッチでは UTC が返されるのに、NodeJS では MySQL の日付が UTC 2 で返されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 05:33:29309ブラウズ

Why Does NodeJS Return MySQL Dates in UTC 2 While Direct MySQL Fetch Returns UTC?

NodeJS が MySQL の直接取得とは異なる MySQL タイムゾーンを返す

質問:

MySQL に直接リクエストすると、サーバーに設定されているタイムゾーンである UTC で日付を受け取ります。ただし、NodeJS を通じてデータをフェッチすると、常に UTC 2 タイムゾーン オフセットが発生します。これはなぜ発生しますか?また、この問題を修正して UTC 日付を取得するにはどうすればよいですか?

回答:

タイムゾーン処理の不一致は、NodeJS 環境の構成が欠落していることが原因です。 。具体的には、MySQL 接続を初期化するときにタイムゾーンを「utc」に設定する必要があります。

この問題を解決するには、MySQL 接続を確立する NodeJS コードに次の行を追加します。

db_config.timezone = 'utc';

たとえば、コードがindex.jsという名前のファイルで定義されている場合、次の構成になります。

<code class="javascript">var db_config = {
  host: 'localhost',
  user: 'xxx',
  password: '',
  database: 'xxx',
  timezone: 'utc'
};</code>

この構成が完了すると、NodeJSは日付を適切に解釈して表示します。 UTC。MySQL サーバーから直接データをフェッチするときに取得する値と一致します。これにより、さまざまな環境間で日時フィールドを処理する際の一貫性と正確さが保証されます。

以上がMySQL のダイレクトフェッチでは UTC が返されるのに、NodeJS では MySQL の日付が UTC 2 で返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。