日付の文字列表現を実際の JavaScript 日付オブジェクトに変換するにはどうすればよいですか?
日付は次の形式です
E MMM dd HH:mm:ss Z yyyy
例えば
Sat Jun 30 00:00:00 CEST 2012
前もって感謝します
編集:私の実用的なソリューションは、受け入れられた回答に基づいています。IE8 で動作させるには、月の部分 (例: Jun) を月の数字 (例: 6 月は 5、1 月は 0) に置き換える必要があります。
日付の文字列表現を実際の JavaScript 日付オブジェクトに変換するにはどうすればよいですか?
日付は次の形式です
E MMM dd HH:mm:ss Z yyyy
例えば
Sat Jun 30 00:00:00 CEST 2012
前もって感謝します
編集:私の実用的なソリューションは、受け入れられた回答に基づいています。IE8 で動作させるには、月の部分 (例: Jun) を月の数字 (例: 6 月は 5、1 月は 0) に置き換える必要があります。
日付文字列はほとんどそのまま解析できますが、 ISO 8601CEST
では有効なタイム ゾーンではないため、手動で に置き換える必要があります。+0200
したがって、簡単な解決策は次のようになります。
var str = "Sat Jun 30 00:00:00 CEST 2012";
str = str.replace(/CEST/, '+0200');
var date = new Date(str);
名前で定義された他のタイム ゾーンをサポートする場合は、可能な値と関連するオフセットを見つける必要があります。それらをマップに登録できます:
var replacements = {
"ACDT": "+1030",
"CEST": "+0200",
...
};
for (var key in replacements) str = str.replace(key, replacements[key]);
var date = new Date(str);
次のコードを使用して、文字列を日時に変換できます。
var sDate = "01/09/2013 01:10:59";
var dateArray = sDate.split('/');
var day = dateArray[1];
// Attention! JavaScript consider months in the range 0 - 11
var month = dateArray[0] - 1;
var year = dateArray[2].split(' ')[0];
var hour = (dateArray[2].split(' ')[1]).split(':')[0];
var minute = (dateArray[2].split(' ')[1]).split(':')[1];
var objDt = new Date(year, month, day, hour, minute);
alert(objDt);