Integer addition/subtraction issues with the Date object

I was playing around with the native Date object, and I realised that subtraction works (returns an integer representing the total number of miliseconds between the two dates), but addition simply combines them via String concatenation. Similarly, adding an integer to a date (e.g. I want to get the time that is 3000ms later) will return a string, while subtracting an integer to a date works.

Just wondering if this is expected behaviour and whether I'm missing something?

Answers:

Answer

You can simply convert current date into milliseconds, add your desired increment then convert it back to date time format and there you have your incremented date:

var d = new Date();
alert("Current DateTime: " + d);
var milliseconds = d.getTime();  //this will convert current date  into milliseconds.. 

//Now youw want to progress the date by 3000ms.. simply add it to the current date time..
milliseconds += 3000;

d = new Date(milliseconds); //your new incremented date

alert("After 3000ms: " + d);

See the DEMO here

Answer

the + operator is overloaded for strings, - is not. You need to use

var newVal=parseInt(new Date().getTime()) + 1000

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us Javascript

©2020 All rights reserved.