1

I am new in JS and now i am trying get the second between two dates but i am tired:

function status(lastseen){
 //note: both dates are in "2013-07-30 21:20:45" format 
    var d1 = new Date(lastseen);
    var d2 = new Date(); 
    var second = ((d2-d1)/1000).toString();
    //return second; 
    if(second <= 10){ 
        return 'status_on';
    } else { 
        return 'status_off'; 
    }
}
Billal Begueradj
  • 20,717
  • 43
  • 112
  • 130

2 Answers2

1

I would use Moment js for that.

var date1 = "2013-07-30 21:20:45";
var date2 = "2013-07-30 21:21:45";
var duration = moment.duration(moment(date2).diff(moment(date1)));
if (duration < 10) {
  console.log('status_on');
} else {
  console.log('status_off')
}

I have created a fiddle. have a look at it.

https://jsfiddle.net/Refatrafi/32gyhzrm/

Rafi Ud Daula Refat
  • 2,187
  • 19
  • 28
0

When you do:

alert(status(lastseen));

It should return seconds. It will never return "status_on" or "status_off", because a function stops executing after a return. Remove the 'return second' to return the status Also use getTime()

seconds=(d1.getTime()-d2.getTime())/1000;
Jonas Wilms
  • 132,000
  • 20
  • 149
  • 151