1. ホーム
  2. javascript

[解決済み] JavaScriptで文字列を日付にパースする

2022-03-22 23:56:58

質問

JavaScriptで文字列をDateオブジェクトに変換するには?

var st = "date in some format"
var dt = new Date();

var dt_st = // st in Date format, same as dt.

解決方法は?

文字列解析に最適な文字列フォーマットは、JavaScriptのDateオブジェクトコンストラクタと併用することで、ISO形式の日付になります。

ISO形式の例です。 YYYY-MM-DD または YYYY-MM-DDTHH:MM:SS .

でも、ちょっと待って! ISOフォーマット"を使用するだけでは、信頼性のある動作はできません。文字列はUTCとして解析されることもあれば、localtimeとして解析されることもあります(ブラウザのベンダーとバージョンに依存します)。ベストプラクティスは、常に日付をUTCとして保存し、UTCとして計算することです。

日付をUTCとしてパースするには Z - 例 new Date('2011-04-11T10:20:30Z') .

日付をUTCで表示する場合は .toUTCString() ,
日付をユーザーのローカルタイムで表示するには .toString() .

詳細はこちら MDN|日付 この回答 .

古い Internet Explorer との互換性を保つために (IE のバージョン 9 未満では Date コンストラクタで ISO 形式をサポートしていません)、datetime 文字列表現を分割して、datetime の部分を使用するコンストラクタを使用する必要があります。 new Date('2011', '04' - 1, '11', '11', '51', '00') . ただし、月番号は1少なくなければならない。


代替方法 - 適切なライブラリを使用する。

また、ライブラリの活用も可能です モーメント.js は、指定されたタイムゾーンで日付をパースすることができます。