Take the 2-minute tour ×

I get a date from a datetime picker with this:

var endDate = new Date();
endDate = $("input[id$='DateTimeControl2Date']").val()

Then I find another date and try to check how many days there are between these two dates but I get the error "Object doesn't support this property or method". What am I doing wrong?

$('.StatusDateTable').each(function() {
var statusDate = new Date(); 
statusDate = $(this).find(".dates").html();
var statusLight = $(this).find(".StatusLight").attr("src");
statusLight = statusLight.substring(33).slice(0,-9);
if (statusLight == "Blue") {
var oneDay = 1000*60*60*24;

alert(endDate + statusDate);
var date1_ms = endDate.getTime();
var date2_ms = statusDate.getTime();

var dayDifference = Math.abs(Math.round((date1_ms - date2_ms)/oneDay));



endDate has the format of 02/09/2010 and statusDate 1/09/2010.

Thanks in advance.

share|improve this question

2 Answers 2

up vote 3 down vote accepted

Date() is a constructor function, when you call it you're assigning the result of that constructor to a variable. Then, in the line afterwards you're assigning a different object, the result of the jQuery val() method, to the same variable.

// The next line will overwrite the current value of `endDate`

Date() accepts an argument that will be parsed as the date. This is how you correctly set a new date object to a specific date/time:

var endDate = new Date($("input[id$='DateTimeControl2Date']").val());

This assumes that the date is returned in a format that Date() can parse. The same applies to your statusDate variable.

Just seen the format of the two dates at the bottom, which won't work well when being parsed by Date(). They won't parse at all in IE, and other browsers parse them as if they were mm/dd/yyyy format. This means you will have to manually split them and apply them to the Date() constructor:

var endDateSplit = $("input[id$='DateTimeControl2Date']").val().split("/"),
    endDate = new Date(endDateSplit[2], endDateSplit[1]-1, endDateSplit[0]);
share|improve this answer

For date manipulation in javascript, there is this library :


share|improve this answer

Your Answer


