比如从服务器端取得的时间是
var st2 = "Fri May 31 11:32:11 CST 2002";
var dt=new Date(st2);
alert(dt);
alert却变成了:
Sat Jun 1 01:32:11 UTC+0800 2002这是怎么回事???

解决方案 »

  1.   

    看看你服务器的设置吧,Fri May 31 11:32:11 CST 2002是美国时间
    CST=Central Standard Time
    和UTC的换算是
    UTC - 6 hours = CST 
    北京时间=UTC+8
    所以北京时间=CST+14
    11:32过14个小时不就是第二天的1:32么
      

  2.   

    setDate(0)得到的是上个月的最后一天
      

  3.   

    <script>
    var st2 = "Fri May 31 11:32:11 CST 2002";
    var dt=new Date(st2.replace(" CST "," "));
    alert(dt);
    </script>
      

  4.   

    谢过silentlamb,在这里又见到你真高兴!
    To秋水无恨,上面你的方法好象不行。
    时区的问题应该怎样解决呢?是这样,我在Java里用
     Date nowdate = java.util.Calendar.getInstance().getTime();
     request.setAttribute("nowdate",nowdate);
    在JSP页面里用JS取得:
    var st2 = "<%=request.getAttribute("nowdate")%>";
    var dt=new Date(st2);
             alert(dt);
    str2的日期格式是JAVA的日期格式:Fri May 31 11:32:11 CST 2002,
    但是在JS中构造为JS的日期类型alert输出就变成了Sat Jun 1 01:32:11 UTC+0800 2002 ,所以5月31日就变成了6月1日。再次感谢你们的热心帮助!