大家好, 因为想用getTime()换成秒来比较任意两个时刻的先后,所以有测试了一下var v1 = new Date(2009,3,31)  //1241107200000
var v2 = new Date(2009,4,1)   //1241107200000
alert(v1.getTime())
alert(v2.getTime())我在调试上述javascript代码时发现getTime()的返回值都是:1241107200000。
2010 年的也是一样。好像就是 3月31号和4月1号这样。 是我的理解不对还是javascript
有Bug. 如果是BUG,如何解决比较任意两个时刻的先后呢?谢谢大家了。zxo102

解决方案 »

  1.   

    var v1 = new Date(2009,3,31) //2009-4-31 -->2009-5-1
    var v2 = new Date(2009,4,1) //2009-5-1
      

  2.   

    test
        var v1 = new Date(2009,2-1,28) //2009-2-28
            var v2 = new Date(2009,2-1,29) //2009-3-1
            var v3 = new Date(2009,2-1,30) //2009-3-2
            alert(v1.toLocaleString())
            alert(v2.toLocaleString())
            alert(v3.toLocaleString())
      

  3.   

    查了一下资料:
    Set Dates
    We can easily manipulate the date by using the methods available for the Date object.
    In the example below we set a Date object to a specific date (14th January 2010):
    var myDate=new Date();
    myDate.setFullYear(2010,0,14);可以看到,在这个例子里,我们需要设置的是2010-1-14,但实际写的是2010-0-14
    根据这样,我试了一下:
    <script>
    var v1 = new Date(2009,3,31) //1241107200000
    var v2 = new Date(2009,4,1) //1241107200000
    alert(v1)    //这样v1就是2009-4-31了,但4月是没31号的,那他进一位了,为2009-5-1。这只是我的猜想,                             
                 // 但实际也确实是输出2009-5-1  
    alert(v2)    //这个也是输出2009-5-1
    alert(v1.getTime())
    alert(v2.getTime())  //所以,v1,v2中存的是相同的时间,再输出距1970/01/01的时间就肯定是一样的啦
    </script>