これは非常に単純な質問のように思えますが、答えが得られないようです。JavaScript を使用して iso タイムスタンプを変換して日付/時刻を表示するにはどうすればよいですか?
タイムスタンプの例: 2012-04-15T18:06:08-07:00
どんな助けでも大歓迎です.Googleは私を失望させています. ありがとうございました。
これは非常に単純な質問のように思えますが、答えが得られないようです。JavaScript を使用して iso タイムスタンプを変換して日付/時刻を表示するにはどうすればよいですか?
タイムスタンプの例: 2012-04-15T18:06:08-07:00
どんな助けでも大歓迎です.Googleは私を失望させています. ありがとうございました。
それをDateコンストラクターに渡します。
> var date = new Date('2012-04-15T18:06:08-07:00')
> date
Mon Apr 16 2012 04:06:08 GMT+0300 (EEST)
Dateの詳細については、https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Dateを確認してください。
最新バージョンのjavascript(最新のブラウザーの一部ではv1.85以降)はISO日付を直接処理できるため、次のように文字列をDate()
コンストラクターに直接渡すことができます。
var jsDate = new Date("2012-04-15T18:06:08-07:00");
ただし、古いブラウザ(IE9より前のバージョンのIE、4より前のバージョンのFirefoxなど)はこれをサポートしていません。これらのブラウザの場合、 datejsのようにこれを実行できるライブラリを入手するか、次のように自分で解析することができます。
var t = "2012-04-15T18:06:08-07:00";
function convertDate(t) {
var dateRE = /(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)([+\-]\d+):(\d+)/;
var match = t.match(dateRE);
var nums = [], item, date;
if (match) {
for (var i = 1; i < match.length; i++) {
nums.push(parseInt(match[i], 10));
}
if (nums[7] < 0) {
nums[8] *= -1;
}
return(new Date(nums[0], nums[1] - 1, nums[2], nums[3] - nums[6], nums[4] - nums[7], nums[5]));
}
}
var jsDate = convertDate(t);
ここでの作業デモ:http://jsfiddle.net/jfriend00/QSgn6/