2013-12-13 44 views
1

我有一個函數,它是用JavaScript編寫的,用於獲取日期時間爲日/月/年小時/分鐘/秒AM/PM格式。我想要的是一個函數,它可以讓我返回以下類型的字符串(1秒,5秒,或2分鐘,或4小時,或1天,或5個月,或5年)。這裏是一個示例代碼片段:如何在JavaScript中返回兩個日期(當前日期和輸入日期)之間的字符串差異?

function (var inputDate) 
{ 
    var difference = dateNow - inputDate; 
    //1 second, or 5 seconds, or 2 minutes, or 4 hours, or 1 day, or 5 months, or 5 years - I want to return the highest difference between both dates (current date and the date, which I input) 
    return string difference; 
} 

在此先感謝!

+0

http://stackoverflow.com/questions/11479170/javascript-fuzzy-time-eg-10-minutes-ago-thats-in-exact-seconds的可能重複 – melancia

+0

請試試這個。我認爲同樣的問題。 http://stackoverflow.com/questions/7763327/how-to-calculate-date-difference-in-javascript –

+0

如果差異是1小時和59分鐘,你想要返回什麼?還有1小時? – user1950929

回答

1

再一次,我遲到了,但作爲@ user1950292建議您可以減去兩個日期和格式的差異。喜歡的東西:

function dateDiffString(a,b) { 
    var diff = (a.getTime() - b.getTime()); 
    var diffs = { 
     years : Math.floor((diff)/(1000 * 60 * 60 * 24 * 365)), 
     months : Math.floor((diff)/(1000 * 60 * 60 * 24 * 30)), 
     weeks : Math.floor((diff)/(1000 * 60 * 60 * 24 * 7)), 
     days : Math.floor((diff)/(1000 * 60 * 60 * 24)), 
     hours : Math.floor((diff)/(1000 * 60 * 60)), 
     mins : Math.floor((diff)/(1000 * 60)), 
     secs : Math.floor((diff)/(1000)) 
    } 
    //iterate through diffs to find first number > 0 
    for (var prop in diffs) { 
     if(diffs.hasOwnProperty(prop) && diffs[prop] > 0){ 
      return diffs[prop] + " " + prop; 
     } 
    } 
} 

var today = new Date(); 
var anotherDay = new Date("2013 12 13,11:52:39"); 
alert(dateDiffString(today,anotherDay)); 

http://jsfiddle.net/xuqNt/

+0

Moob,非常感謝!我將這個答案設置爲我接受的答案! – pvarbanov