15

これは非常に単純な質問のように思えますが、答えが得られないようです。JavaScript を使用して iso タイムスタンプを変換して日付/時刻を表示するにはどうすればよいですか?

タイムスタンプの例: 2012-04-15T18:06:08-07:00

どんな助けでも大歓迎です.Googleは私を失望させています. ありがとうございました。

4

3 に答える 3

29

それを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を確認してください。

于 2012-04-16T21:12:01.350 に答える
4

最新バージョンの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/

于 2012-04-16T21:24:18.263 に答える