Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
164
rated 0 times [  166] [ 2]  / answers: 1 / hits: 20453  / 10 Years ago, sun, march 2, 2014, 12:00:00

I'm trying to calculate remaining time (ex: 10 years, 2 months and 10 days from today(2014/03/02) in JS using this function:



var d2 = new Date(2024, 3, 12);
var d1 = new Date();
var d0 = new Date(1970, 0, 1);

var diff = new Date(d2.getTime() - (d1.getTime() + d0.getTime() ) );
var years = diff.getFullYear();
var months = diff.getMonth();
var days = diff.getDay();

alert(remaining time = + years + years, + months + months, + days + days.);


But instead of get the 10 years difference, I got 1980 years difference (though the days difference I understand that are produced buy the variation of days in months and years):



enter



Is it possible to perform this remaining time operation using this strategy? If so, how to get the expected result?



Here the function in a JS shell: jsfiddle.net/3ra6c/


More From » date

 Answers
8

As I explained, Date is not equipped with such functions and you have to do the math yourself. You can get the milliseconds difference between two dates, but then it's down to doing the math to represent that as you wish.



An example of using moment.js, loaded with require.js, with humanized approximations.



Javascript



require.config({
paths: {
moment: 'http://momentjs.com/downloads/moment.min'
}
});

require(['moment'], function (moment) {
var x = moment(new Date(2024, 3, 12)).from(new Date());

console.log(x);
});


Output



in 10 years


On jsFiddle



Look at their docs to see how you can humanize the output, you may want a little more detail.


[#72210] Friday, February 28, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
luna

Total Points: 698
Total Questions: 114
Total Answers: 93

Location: Israel
Member since Wed, Apr 14, 2021
3 Years ago
luna questions
;