JavaScript中有没有提供什么函数能把字符串格式化为想要的格式,例如2009-9-8  格式化为2009-09-08?页面文本框中有形如2009-9-9的值代表时间,用些什么方法可以比较它们的大小(时间先后)?

解决方案 »

  1.   

    似乎没有,自己写函数format吧,也不是很难
      

  2.   


    var num="2009-8-15";
    var num2="2009-8-16";
    var getDate=function(str) {
        return new Date(num.replace(/-/,"/"));
    };
    var d1=getDate(num);
    var d2=getDate(num2);
    alert(d1>d2);
      

  3.   

    自已写吧,就你这个日期格式化的,可以这样写
    var s="2009-9-8";
      var sl=s.split("-");
      var o=""
      for(var i=0;i<sl.length;i++){
    if(sl[i].length<2){
    sl[i]="0"+sl[i];
    }
      }
      o=sl[0]+"-"+sl[1]+"-"+sl[2];
      alert(o)
    如果只是单纯的两个日期比较,可以比较他们的getTime()例 var a1="2007-02-05";
      var a2="2008-12-3";
      var s1=a1.split("-");
      var s2=a2.split("-");
      var b1=new Date(parseInt(s1[0]),parseInt(s1[1]),parseInt(s1[2]))
      var b2=new Date(parseInt(s2[0]),parseInt(s2[1]),parseInt(s2[2]))
      if(b1.getTime()>b2.getTime()){
    alert(a1+"大于"+a2);  }
      else{
    alert(a1+"小于"+a2);
      }
      

  4.   

    可以直接将“-”replace 成“-0”
      

  5.   


    var s="2009-12-9";
    s=s.replace(/\b(\d)\b/g,"0$1");
    alert(s);
      

  6.   

    \b匹配单词边界
    \d数字
    (\d)捕获分组