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 サイトの他の関連記事を参照してください。