FFとChromeで有効なタイムスタンプを生成する次の行があります。
new Date('2012 11 2 00:00:00 GMT').getTime();
ただし、IE9ではNaNを取得します。この行をクロスブラウザ互換にするために、別の方法で何をする必要がありますか?
FFとChromeで有効なタイムスタンプを生成する次の行があります。
new Date('2012 11 2 00:00:00 GMT').getTime();
ただし、IE9ではNaNを取得します。この行をクロスブラウザ互換にするために、別の方法で何をする必要がありますか?
使用している日付形式はEMCAscript仕様に準拠している必要があります。これは、FirefoxとChromeが解析に対してより寛容であるということです。
形式は次のとおりです。
YYYY-MM-DDTHH:mm:ss.sssZ
だからこれを試してみてください:
new Date('2012-11-02T00:00:00.000Z').getTime()
これは、古いバージョンのIEでは機能しません。完全な互換性が必要な場合は、他の回答を参照してください。
文字列を日付に変換する唯一の信頼できる方法は、手動で解析することです。ライブラリを使用することもできますが、使用するものは何でも形式を知っている必要があるため、通常は自分で行う方が簡単です。
'2012 11 2 00:00:00 GMT'(ISO8601に準拠していないため、解析は実装に依存します)の場合、タイムゾーンが常にUTCである場合は、次を使用できます。
function stringToDate(s) {
var b = s.split(/\D/);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));
}
結果の日付オブジェクトには、クライアントのシステム設定に基づいたタイムゾーンオフセットがあります。これは正しいはずですが、正しくない場合があります。