3

文字列形式の日付を含むJSONオブジェクトを返すシステムがあります。

これらの日付は「2012-10-1906:05:38GMT」の形式です(いいえ...私はこのようにそれらに固執しています)

したがって、これを日付オブジェクト(d)に入れて、d.toLocaleDateString()として出力できるようにする必要があります。

クロームでは、文字列を新しい日付に渡すだけで完全に機能します(悪いクローム-エリックを怠惰にします)が、もちろんFFとIEでは失敗します

文字列を分割することで修正できますが、きれいではなく、GMTからのオフセットを処理する方法がわかりません。

もっとエレガントな方法があるに違いない...?

ここの誰かが一行でそれを行うことができると確信しています。

4

4 に答える 4

2

私があなたであり、その情報を収集する(そしてそれを出力する)サーバーサイドスクリプトにアクセスできる場合、日付をUNIXタイムスタンプに変換し、Dateコンストラクターを使用してJavascriptで処理するようにします。

編集:strtotime() PHPを使用している場合は、関数を使用して文字列の日付を数値のUNIXタイムスタンプに変換できます。

于 2012-10-31T03:12:14.093 に答える
2

正確な形式がわかっている場合は、Moment.js:DocumentationforMoment.jsなどのライブラリを使用できます。

パースします:

var dateString = "2012-10-19 06:05:38 GMT".replace(" GMT", "");
var date = moment(dateString, "YYYY-MM-DD HH:mm:ss");
于 2012-10-31T03:12:55.557 に答える
2

ワンライナーではありませんが、すべての日付がGMTになることがわかっている場合は、次のように機能するはずです。

function parseDate(dateString) {
    // [y, m, d, hr, min, sec]
    var parts = dateString.match(/\d+/g);

    // Months are 0-indexed
    parts[1] -= 1;

    return new Date(Date.UTC.apply(Date, parts));
}
于 2012-10-31T03:34:54.363 に答える
0

dateStringを手動で解析し、Date the Dateコンストラクターを正確に渡すことができます:<a href = "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date" rel = "nofollow "> https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

   var dateString = "2012-10-19 06:05:38 GMT".split(" "),
       date = dateString[0].split("-"),
       time = dateString[1].split(":");

   var dateObj = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
于 2012-10-31T03:43:14.187 に答える