JavaScript で日付を扱う場合、文字列表現から新しい Date オブジェクトを作成するときに発生する可能性のある不一致を理解することが重要です。次の問題が発生する可能性があり、それぞれの解決策が提供されています。
1. 1 日オフセット
「年-月-日」形式の文字列を使用して Date オブジェクトを作成する場合 (例: 「2011-09-24」)、結果の日付が 1 日ずれる可能性があります。 。これは、Date コンストラクターのデフォルトの動作によるもので、UTC (協定世界時) のタイムゾーンを想定し、入力値を現地時間であると解釈します。
解決策:正しい日付が返される場合は、文字列を「月-日-年」形式 (例: 「09-24-2011」またはハイフン) に変換する必要があります。 「2011/09/24」など、スラッシュに置き換える必要があります。
2.日付文字列にハイフンを使用した場合の予期しない結果
日付区切り文字としてハイフンを使用すると、一貫性のない結果が生じる可能性があります。たとえば、Date コンストラクターを使用して変換すると、文字列「2011-09-24」は誤った日付を生成しますが、文字列「2011/09/24」は正しい日付を生成します。
解決策: 日付区切り文字として常にスラッシュ (「/」) を使用します。
3. 「YYYY-MM-DDThh:mm:ss」形式の日付文字列に関する問題
「2011-09-24T00:00:00」形式の文字列から Date オブジェクトを作成する場合その結果、日付が再び 1 日ずれる可能性があります。さらに、文字列がスラッシュ形式 (例: "2011/09/24T00:00:00") を使用して変換される場合、「無効な日付」エラーが発生する可能性があります。
解決策:このタイプの日付文字列を正しく解析するには、ハイフンをスラッシュに置き換え、時刻の部分を削除します。例: "2011/09/24T00:00:00".replace(/-/g, '/').replace(/T. /, '').
4. Date コンストラクターへの複数の引数による追加機能
Date コンストラクターは複数の引数をサポートしており、高度な計算の実行に役立ちます。たとえば、年と月のみを指定すると (例: new Date(2011, 0))、その月の最初の日が返されます。あるいは、年と負の日の値を指定すると、例: new Date(2011, "02", -1) は、前月の最後の日を返します。
以上がJavascript の「Date」オブジェクトを使用するときに日付の不一致を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。