开发者

Cant assign value from getElementById to date?

I've got this:

    var lDate = document.getElementById('txtLeaveDate');
    var rDate = document.getElementById('txtReturnedDate');

Err...javascript so how do I assign the value of txtLeaveDate to a date variable

I tried:

var myDate = new Date(lDate.value);

But this assigns some long value....

I can do it if I try:

var today = new Date();
  var day2 = new Date();
  day2.setDate(today.getDate() + 30);

But the issue is I need to get the date from txtLeaveDate not by a date variable

edit complete code

var theLDate = new Date(lDate.value);
        var theRDate = new Date(rDate.value);

        //check if return date is a sunday, if it is no need
        //to do anything,
        //else make it a sunday
        while (theRDate.getDay() != 0) 
            theRDate.setDate(theRDate.getDate() + 1);

        //at this point RDate is a sunday...
        while(theLDate.valueOf() <= theRDate.valueOf())
            {
                if(theLDate.getDay() == 0)
                    {   //sunday
                        var li = document.createElement('li');
                        li.setAttribute('id', ['liID' + count]);
                        var month = theLDate.getMonth();
                        var day = theLDate.getDate();
          开发者_JS百科              var year = theLDate.getFullYear();
                        var theDay = month + '/' + day + '/' + year + ' (Sunday)';
                        li.innerHTML = theDay;
                        ul.appendChild(li);
                    }   
                theLDate.setDate(theLDate.getDate() + 1);
                count++;
            } 

But when I pick 2 dates in my calendar like so:

Cant assign value from getElementById to date?


if I try that and say alert(theLDate.valueOf()); it returns 1309924800000

That's because that is the value of a Date object, measured in milliseconds since 1/1/1970 00:00:00, in this case corresponding to Wed Jul 6 04:00:00 2011 UTC.

Try using .toString() instead and you'll see the corresponding date in a human readable format.

The problem with your dates appearing to be in June is because the getMonth() function for odd reasons returns the month zero based, i.e. January == 0.


You need to use .innerHTML, otherwise you are not returning the text in the element.

var lDate = document.getElementById('txtLeaveDate').innerHTML;
var myDate = new Date(lDate);
document.write(myDate);

http://jsfiddle.net/jasongennaro/ua85k/


Months returned by the someDate.getMonth method are zero-indexed (from 0 to 11). So if using them to create a string add 1!

var month = theLDate.getMonth() + 1;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜