1. ホーム
  2. javascript

[解決済み] 人間に優しい相対日付書式を実現するJavascriptライブラリ【終了しました

2022-12-14 11:27:35

質問

いくつかの日付を現在の日付からの相対的なものとして、人に優しいフォーマットで表示したい。

人にやさしい相対的な日付の例です。

  • 10秒前
  • 今から20分後
  • 1日前
  • 5 週間前
  • 2ヶ月前

基本的に最高位を忠実に保存する(そして好みで、そのうちの2単位を通過するときだけ単位をシフトアップする - 1ヶ月ではなく5週間)。

しかし、私は、より少ない制御と、さらに親切な日付のようなライブラリと共存することができました。

  • 昨日
  • 明日
  • 先週
  • 数分前
  • 数時間後

このために人気のあるライブラリはありますか?

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

この回答を書いてから、よく知られたライブラリが利用できるようになりました。 moment.js .


そこには ライブラリがあります。 がありますが、自分で実装するのは些細なことです。ほんの少しの条件を使うだけです。

仮定 date はインスタンス化された Date オブジェクトのインスタンスです。

// Make a fuzzy time
var delta = Math.round((+new Date - date) / 1000);

var minute = 60,
    hour = minute * 60,
    day = hour * 24,
    week = day * 7;

var fuzzy;

if (delta < 30) {
    fuzzy = 'just then.';
} else if (delta < minute) {
    fuzzy = delta + ' seconds ago.';
} else if (delta < 2 * minute) {
    fuzzy = 'a minute ago.'
} else if (delta < hour) {
    fuzzy = Math.floor(delta / minute) + ' minutes ago.';
} else if (Math.floor(delta / hour) == 1) {
    fuzzy = '1 hour ago.'
} else if (delta < day) {
    fuzzy = Math.floor(delta / hour) + ' hours ago.';
} else if (delta < day * 2) {
    fuzzy = 'yesterday';
}

将来の日付を処理するために、これを適応させる必要があります。