无法将getElementById的值分配给日期?

时间:2011-07-25 18:22:23

标签: javascript

我有这个:

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

错误... javascript所以如何将txtLeaveDate的值赋给日期变量

我试过了:

var myDate = new Date(lDate.value);

但是这给了一些很长的价值......

如果我尝试,我可以这样做:

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

但问题是我需要从txtLeaveDate获取日期而不是日期变量

编辑完整代码

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();
                        var year = theLDate.getFullYear();
                        var theDay = month + '/' + day + '/' + year + ' (Sunday)';
                        li.innerHTML = theDay;
                        ul.appendChild(li);
                    }   
                theLDate.setDate(theLDate.getDate() + 1);
                count++;
            } 

但是当我在我的日历中选择2个日期时,如下:

enter image description here

3 个答案:

答案 0 :(得分:1)

  

如果我尝试并说alert(theLDate.valueOf());它会返回   1309924800000

那是因为 Date对象的值,以自1/1/1970 00:00:00开始的毫秒数来衡量,在这种情况下对应于Wed Jul 6 04:00:00 2011 UTC。

尝试使用.toString(),您将以人类可读的格式看到相应的日期。

您的日期出现在6月份的问题是因为奇怪原因的getMonth()函数返回月份zero based, i.e. January == 0

答案 1 :(得分:0)

您需要使用.innerHTML,否则您不会返回元素中的文本。

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

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

答案 2 :(得分:0)

someDate.getMonth方法返回的月份为零索引(从0到11)。因此,如果使用它们来创建一个字符串,请添加1!

var month = theLDate.getMonth() + 1;