例如:我想把“2011年5月25日 17:13”这样的字符串转换成时间格式,因为我要计算两个时间差,而这两个时间都必须要从字符串转换才能得到,麻烦神仙大侠们赐教,小弟愿虚心学习,在此先谢过了!

解决方案 »

  1.   


    function getDateFromString(str)
    {
    var reg = /^(\d+)年(\d+)月(\d+)日 (\d+):(\d+)/;
    var s  = str.match(reg);
    var result="";
    if(s)
    {
       result = new Date(s[1],s[2],s[3],s[4],s[5]);   
    }
    return result ;
    }

    var result = getDateFromString("2011年5月25日 17:13");
    alert(result);
      

  2.   

    sorry
    月份忘记减一了。(日期的有效性没有考虑,如果需要自己加验证。)
    result = new Date(s[1],parseInt(s[2])-1,s[3],s[4],s[5]);          
      

  3.   

    var s1 = "2011年5月25日 17:13";
    var s2 = "2011年5月25日 1:12";
    var d1 = convertToDate(s1);
    var d2 = convertToDate(s2);
    var secs = dateDiff(d1,d2);
    alert(secs);
    //返回相差多少秒
    function dateDiff(d1,d2){ 
       var sp = d1 - d2;
      return (sp/1000);
    }
    function convertToDate(s){
      var arr =  s.split(/年|月|日\s|:/);
      var date = new Date(arr[0],arr[1],arr[2],arr[3],arr[4]); 
      return date;
    }
      

  4.   

    借1楼代码用下
    计算时间差转换成天的function getDateFromString(str){
    var reg = /^(\d+)年(\d+)月(\d+)日 (\d+):(\d+)/;
    var s  = str.match(reg);
    var result="";
    if(s)
    {
      result = new Date(s[1],s[2] - 1,s[3],s[4],s[5]);                              
    }
    return result ;
    }
                    
    var result1 = getDateFromString("2011年5月25日 17:13");
    var result2 = getDateFromString("2010年12月12日 8:00");
    var result = (result1 - result2) / (1000 * 60 * 60 * 24); //计算天
    alert(result);