1

このフォーラムを調べたところ、jQuery を使用したタイムスタンプの変換に関する同様の投稿がいくつか見つかりました。しかし、私の問題を解決するものは一度も見つかりませんでした。

Jquery Mobile と組み合わせて、Web アプリケーションに取り組んでいます。この webapp では、いくつかの Twitter フィードを表示しています: 画像からとメッセージ。今、そこにも日付を取得しようとしています。

jsonから日付を取得すると、次のようになります。

Tue, 05 Jun 2012 13:25:06 +0000

今、私はこの日付を現在の日付と比較して、過去の時間を計算したいと考えています。これは、1 秒前、2 分前、1 時間前などと言いたいからです。

現在の日付と Twitter の日付を比較する方法を誰か教えてもらえますか?

4

2 に答える 2

2

このように JavaScript でタイムスタンプを比較できます。

var input_date = new Date('Tue, 05 Jun 2012 13:25:06 +0000').getTime();
var curr_date = new Date().getTime();
if(input_date > curr_date){
  alert("greater");    
}else{
  alert('small');
}

デモはこちら

しかし、要件に応じて、「1 分前」、「1 時間前」、「2 日前」などの時間を表示したい場合は、javascrpt 計算を行う代わりにjquery timeago プラグインを使用できます。このプラグインを参照してください。ニーズを満たします。

于 2012-06-05T16:48:48.003 に答える
1
var twitterDate = new Date("Tue, 05 Jun 2012 13:25:06 +0000").getTime(),
    now = new Date().getTime();

if (twitterDate > now) {
    alert('Future')
} else {
    alert('Past');
}

デモ

getTime メソッドによって返される値は、1970 年 1 月 1 日 00:00:00 UTC からのミリ秒数です。

.getTime()について読む

そして、日付の違いを取得するには、次の方法を使用できます。

function getDateDiff(twitterDate, interval) { // interval means unit,
    // in which you want the result
    var second = 1000,
        minute = second * 60,
        hour = minute * 60,
        day = hour * 24,
        week = day * 7;
    date1 = new Date(twitterDate).getTime();
    date2 = new Date().getTime();
    var timediff = date2 - date1;
    if (isNaN(timediff)) return NaN;
    switch (interval) {
    case "years":
        return date2.getFullYear() - date1.getFullYear() + ' years ago.';
    case "months":
        return ((date2.getFullYear() * 12 + date2.getMonth()) - (date1.getFullYear() * 12 + date1.getMonth())) + ' months ago.';
    case "weeks":
        return Math.floor(timediff / week) + ' weeks ago.';
    case "days":
        return Math.floor(timediff / day) + ' days ago.';
    case "hours":
        return Math.floor(timediff / hour) + ' hours ago.';
    case "minutes":
        return Math.floor(timediff / minute) + ' minutes ago.';
    case "seconds":
        return Math.floor(timediff / second) + ' seconds ago.';
    default:
        return undefined;
    }
}

使用する:

getDateDiff("Tue, 05 Jun 2012 13:25:06 +0000", "seconds");
于 2012-06-05T16:33:12.900 に答える