问题:
js 日期比较,我用的解释器不支持直接比较,请问有什么办法?目的:
我的目标是可以算出date1-date2的值现有情况:
目前我这样写->date1-date2算出的是null,即使改成
 var dt1 = new Date(date1)
 var dt2 = new Date(date2) dt1-dt2 也是null

解决方案 »

  1.   

    date1 date2的格式要正确
    var dt1 = new Date("2009/7/1") 
    var dt2 = new Date("2009/8/1")
    alert(dt2-dt1) 
      

  2.   

    date1 = "2009-7-1"
    date1 = date1.replace(/-/g,"/")
      

  3.   

    我发现 "2009-7-1".replace("-","/") 替换仅第一个而已,估计是BUG啊
    用 "2009-7-1".replace(/-/g,"/") 才可以把两个-都替换,
      

  4.   

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

  5.   

    我在FF下发现 "2009-7-1".replace("-","/") 替换仅第一个而已,估计是BUG啊 
    用 "2009-7-1".replace(/-/g,"/") 才可以把两个-都替换,在MS IE下两种方法都没问题,
      

  6.   

    replace 方法
    返回根据正则表达式进行文字替换后的字符串的复制。stringObj.replace(rgExp, replaceText)rgExp 必选项。为包含正则表达式模式或可用标志的正则表达式对象。也可以是 String 对象或文字。如果 rgExp 不是正则表达式对象,它将被转换为字符串,并进行精确的查找;不要尝试将字符串转化为正则表达式。
      

  7.   

    简体中文 IE 7 与 FF 3 下结果都一致!
      

  8.   

    我取出来的差值总是NaN呢?看了下8楼给的帮助说:如果数字为 NaN,则表示该对象不代表特定的时间段。这个是什么意思?我的代码总体如下://首先是取得页面上的字段值。
    date_begin = new Date(form_date_time.getFieldValue('t_date_time.date_begin'));
    date_end = new Date(form_date_time.getFieldValue('t_date_time.date_end'));
    //然后我保存变量值
    tabsFrame.typeRestriction = "";
    tabsFrame.typeRestriction = date_begin+"||"+date_end;
    //又在其它tab页面分割字符串
    var pkeys = tabsFrame.typeRestriction.split("||");  
    //随后我又想转回日期类型
    date_begin = new Date(pkeys[1]);
    date_end = new Date(pkeys[2]);
    //求差值
    date_begin = date_begin.replace(/-/g,"/");
    date_end = date_end.replace(/-/g,"/")
    if(1==1){
    alert(date_end - date_begin);
    return false;
    } 目前我这样调用好像出错了,代码连提示都不出来了。之前会提示说NaN。
      

  9.   

    date_begin = new Date(pkeys[0]);
    date_end = new Date(pkeys[1]);
      

  10.   

    //求差值
    date_begin = date_begin.replace(/-/g,"/");
    date_end = date_end.replace(/-/g,"/")这里提示错误:不支持的属性或方法。顶一下,实在没辙就结贴了。
      

  11.   

    //求差值 
    date_begin = date_begin.replace(/-/g,"/"); 
    date_end = date_end.replace(/-/g,"/"); 这里提示错误:不支持的属性或方法。 顶一下,实在没辙就结贴了。PS:我的代码里没有少这个分号。
      

  12.   

    date_begin是字符串吗? alert()出来看下
      

  13.   

    原来是逻辑错了。//随后我又想转回日期类型
    date_begin = new Date(pkeys[1]);
    date_end = new Date(pkeys[2]);
    //求差值
    date_begin = date_begin.replace(/-/g,"/");
    date_end = date_end.replace(/-/g,"/")这段代码调换下顺序就可以了。 - -