例:从input处获得日期2010-01-19并赋给变量var date。现使用Date.UTC(date);却得到NAH而非时间戳,何解?

解决方案 »

  1.   


    var v=document.getElementById("txt1").value,d=new Date(v.replace(/-/,"/"));
    alert(d);
      

  2.   

    用 Date.parse
    L@_@K
    var slash = "/";
    var dateStr = "2010-01-19";
    var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
    var yyyyMMdd = reg.exec(dateStr);
    var date = Date.parse(yyyyMMdd[2] + slash + yyyyMMdd[3] + slash + yyyyMMdd[1]);
    alert(date);
      

  3.   

    Web 开发常用手册JScript语言参考.rar
    http://download.csdn.net/source/308916DHTML参考手册.rar
    http://download.csdn.net/source/308913样式表中文手册.chm
    http://download.csdn.net/source/304124
      

  4.   

    呵呵,IE 7 下确实没问题,但是 FF 下确实不行,提示 Invaild Date !JScript:dateObj = new Date(dateVal)dateVal必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间 的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。下面这些规则决定了 parse 方法能够成功地解析那些字符串: * 短日期可以使用“/”或“-”作为日期分隔符,但是必须用月/日/年的格式来表示,例如"7/20/96"。
    MM/dd/yyyy 格式没问题,IE、FF 均可以正确解释!
    但是,yyyy/MM/dd 应该与本地化有关,中文 IE 确实可以解析,但 FF 就不行!* 以 "July 10 1995" 形式表示的长日期中的年、月、日可以按任何顺序排列,年份值可以用 2 位数字表示也可以用 4 位数字表示。如果使用 2 位数字来表示年份,那么该年份必须大于或等于 70。 
    * 括号中的任何文本都被视为注释。这些括号可以嵌套使用。 
    * 逗号和空格被视为分隔符。允许使用多个分隔符。 
    * 月和日的名称必须具有两个或两个以上的字符。如果两个字符所组成的名称不是独一无二的,那么该名称就被解析成最后一个符合条件的月或日。例如,"Ju" 被解释为七月而不是六月。 
    * 在所提供的日期中,如果所指定的星期几的值与按照该日期中剩余部分所确定的星期几的值不符合,那么该指定值就会被忽略。例如,尽管 1996 年 11 月 9 日实际上是星期五,"Tuesday November 9 1996" 也还是可以被接受并进行解析的。但是结果 Date 对象中包含的是 "Friday November 9 1996"。 
    * JScript 处理所有的标准时区,以及全球标准时间 (UTC) 和格林威治标准时间 (GMT)。 
    * 小时、分钟、和秒钟之间用冒号分隔,尽管不是这三项都需要指明。"10:"、"10:11"、和 "10:11:12" 都是有效的。 
    * 如果使用 24 小时计时的时钟,那么为中午 12 点之后的时间指定 "PM" 是错误的。例如 "23:15 PM" 就是错误的。 
    * 包含无效日期的字符串是错误的。例如,一个包含有两个年份或两个月份的字符串就是错误的。
      

  5.   


    依然提示Invaild Date
    会不会是数据来源问题?但是我alert那个变量出来是2010-01-19,而且前后都没有空格的
      

  6.   

    在ie6下提示:Web Jan 20 00:00:00 UTC+0800 2010
      

  7.   

    请 lz 把浏览器版本及其测试代码贴出来好么?以下代码在 IE 7 和 FF 3 均测试通过!
    var slash = "/";
    var dateStr = "2010-01-19";
    var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
    var yyyyMMdd = reg.exec(dateStr);
    var date = Date.parse(yyyyMMdd[2] + slash + yyyyMMdd[3] + slash + yyyyMMdd[1]);
    document.write(date); // 1263830400000
      

  8.   

    再次测试, IE 7 和 FF 3 均测试通过,但是输出略有不同! L@_@K
    var slash = "/";
    var dateStr = "2010-01-19";
    var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
    var yyyyMMdd = reg.exec(dateStr);
    var ms = Date.parse(yyyyMMdd[2] + slash + yyyyMMdd[3] + slash + yyyyMMdd[1]);document.write(new Date(ms), "<br />");
    document.write(ms);/* IE7 Output:
    Tue Jan 19 00:00:00 UTC+0800 2010
    1263830400000
    *//* FF3 Output:
    Tue Jan 19 2010 00:00:00 GMT+0800
    1263830400000
    */
      

  9.   

    遨游2.5.11.3390 unicode提示:Web Jan 20 00:00:00 UTC+0800 2010ff3.5.7提示Invaild Date
      

  10.   


    var v=document.getElementById("ms__id1").value,d=new Date(v.replace(/-/g,"/"));
    alert(d)杯具后面加个参数g全局匹配
    IE Tester 6,7,8,Chrome 4,Opera 10,safari 4,Firefox3.5测试通过