1. ホーム
  2. javascript

[解決済み] Javascriptのタイムスタンプを相対時間へ

2023-03-15 21:28:54

質問

私は、タイムスタンプ(例えばTwitter APIから)をユーザーフレンドリーな相対時間(例えば2秒前、1週間前など)に変換する素敵なJSスニペットを探しています。

どなたか、お気に入りの方法(できればプラグインを使用しない)を共有することに関心がありますか?

どのように解決するのですか?

正確さにこだわらなければ、とても簡単な方法です。つまらない方法で何が悪いのでしょうか?

function timeDifference(current, previous) {

    var msPerMinute = 60 * 1000;
    var msPerHour = msPerMinute * 60;
    var msPerDay = msPerHour * 24;
    var msPerMonth = msPerDay * 30;
    var msPerYear = msPerDay * 365;

    var elapsed = current - previous;

    if (elapsed < msPerMinute) {
         return Math.round(elapsed/1000) + ' seconds ago';   
    }

    else if (elapsed < msPerHour) {
         return Math.round(elapsed/msPerMinute) + ' minutes ago';   
    }

    else if (elapsed < msPerDay ) {
         return Math.round(elapsed/msPerHour ) + ' hours ago';   
    }

    else if (elapsed < msPerMonth) {
        return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';   
    }

    else if (elapsed < msPerYear) {
        return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';   
    }

    else {
        return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';   
    }
}

動作例 ここで .

特異値をうまく扱えるように微調整するとよいでしょう(例えば 1 day の代わりに 1 days を使用します)それが気になるなら