Stack Exchange サイトに似た「4 分前」などの xxx からの時間をフォーマットする方法 質問する

Stack Exchange サイトに似た「4 分前」などの xxx からの時間をフォーマットする方法 質問する

質問は、DateStack Overflow に表示される時間と同じように、経過時間を示す文字列として JavaScript をフォーマットする方法です。

例えば

  • 1分前
  • 1時間前
  • 1日前
  • 1ヶ月前
  • 1年前

ベストアンサー1

function timeSince(date) {

  var seconds = Math.floor((new Date() - date) / 1000);

  var interval = seconds / 31536000;

  if (interval > 1) {
    return Math.floor(interval) + " years";
  }
  interval = seconds / 2592000;
  if (interval > 1) {
    return Math.floor(interval) + " months";
  }
  interval = seconds / 86400;
  if (interval > 1) {
    return Math.floor(interval) + " days";
  }
  interval = seconds / 3600;
  if (interval > 1) {
    return Math.floor(interval) + " hours";
  }
  interval = seconds / 60;
  if (interval > 1) {
    return Math.floor(interval) + " minutes";
  }
  return Math.floor(seconds) + " seconds";
}
var aDay = 24*60*60*1000;
console.log(timeSince(new Date(Date.now()-aDay)));
console.log(timeSince(new Date(Date.now()-aDay*2)));

おすすめ記事