2017-05-07 7 views
1

私は次の形式の日付があります。私はそれをより使いやすい形式に変換したいと考えています(5分前など)。日付をユーザーフレンドリーな形式に変換中にエラーが発生しました

2017-05-07 18:23:56 

これには次のコードがあります。すべて正常に動作しますが、レコードが新しいときはエラーが発生します。私はコードを修正しようとしましたが、レンガの壁にのみ当たった。誰か助けてくれますか?

var DURATION_IN_SECONDS = { 
epochs: ['year', 'month', 'day', 'hour', 'minute'], 
year: 31536000, 
month: 2592000, 
day: 86400, 
hour: 3600, 
minute: 60 
}; 

function getDuration(seconds) { 
    var epoch, interval; 
for (var i = 0; i < DURATION_IN_SECONDS.epochs.length; i++) { 
epoch = DURATION_IN_SECONDS.epochs[i]; 
interval = Math.floor(seconds/DURATION_IN_SECONDS[epoch]); 
if (interval >= 1) { 
    return { 
    interval: interval, 
    epoch: epoch 
    }; 
} 
} 
}; 

function timeSince(date) { 
var seconds = Math.floor((new Date() - new Date(date))/1000); 
var duration = getDuration(seconds); 
var suffix = (duration.interval > 1 || duration.interval === 0) ? 's' : ''; 
return duration.interval + ' ' + duration.epoch + suffix; 
}; 

P.私は1分前の形式で時間を得たいと思っています。間隔があまりにも小さければ、ちょうど今見たいと思っています。

+0

を - givenTime = answerInMinutesを? –

答えて

2

あなたはgetDuration(から何も返されません)全てのエポックのための間隔が1未満

は、次のコードを試してみてくださいされている場合:ので、基本的にあなたがCURRENTTIME必要

function getDuration(seconds) { 
    var epoch, interval; 

    for (var i = 0; i < DURATION_IN_SECONDS.epochs.length; i++) { 
     epoch = DURATION_IN_SECONDS.epochs[i]; 
     interval = Math.floor(seconds/DURATION_IN_SECONDS[epoch]); 
     if (interval >= 1) { 
      return { 
       interval: interval, 
       epoch: epoch 
      } 
     } 
    } 

    return { 
     interval: '', 
     epoch: 'Just now' 
    } 
}; 
+0

私はそれを試してみました。 – Krish

+0

@Krish、あなたはそれが正しい場所に置かれたと確信していますか?コードを更新して確認しました。 –

+0

はい、それは私の間違いでした。すべて今はうまくいく。どうもありがとうございました。 – Krish

関連する問題