1

Twitter API が日付を返す形式でエンコードされたものについて話しています。

"Tue Jan 12 21:33:28 +0000 2010"

私が考えた最善のことは、それを正規表現でスライスして、より似たものにすることでした...

20100112213328

しかし、もっと良い方法があるはずです

4

3 に答える 3

1

のような文字列を使用して、新しい Date オブジェクトを作成できます"Tue Jan 12 21:33:28 +0000 2010"

var dateString = "Tue Jan 12 21:33:28 +0000 2010";
var twitterDate = new Date(dateString);

次に、単純に < と > を使用して比較を行うことができます。

var now = new Date();
if (now < twitterDate) {
    // the date is in the future
}
于 2012-11-08T08:36:02.427 に答える
1

JavaScript Date は Twitter の日付を正しく解析します:

  var d1 = new Date ("Tue Jan 12 21:33:28 +0000 2010")
    , d2 = new Date ("Tue Jan 12 22:33:28 +0000 2010");

数値形式に変換する getTime メソッドを使用してこれらを比較できます。

  if (d1.getTime() < d2.getTime())
  {
       //...
  }

または、単に

if (d1 < d2)
{
}

必要に応じて、番号を明示的に強制します。

if (+(d1) < +(d2))
{
}
于 2012-11-08T08:41:09.377 に答える
0

ECMAScript 仕様 5.1 に関する限り (15.9.1.15 を参照)、サポートされている日時の文字列交換形式はYYYY-MM-DDTHH:mm:ss.sssZ(短い形式と共に) のみです。

それ以外の場合 (15.9.4.2):

文字列がその形式に準拠していない場合、関数は実装固有のヒューリスティックまたは実装固有の日付形式にフォールバックする可能性があります。

短く、どこでも動作することが保証されている正規表現ベースのソリューションを使用します。ユーザーのブラウザーとローカリゼーションのパラメーターに依存することは、私には少し不気味に思えます。

于 2012-11-08T08:56:08.593 に答える