2013-12-13 42 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