日期格式:
   dt1 = "2009-11-5 10:30"  
   dt2 = "2009-11-8 9:20"求两时间相隔了几小时几分钟.... ? 
谢谢各位.分不够再加

解决方案 »

  1.   

    <html>
    <script>
    dt1 = "2009-11-5 10:30";  
    dt2 = "2009-11-8 9:20";function getD(dt1){
    var d1=dt1.split(" ")[0];
    var t1=dt1.split(" ")[1];
    var y1=d1.split("-")[0];
    var m1=parseInt(d1.split("-")[1])-1;
    var da1=d1.split("-")[2];
    var h1=t1.split(":")[0];
    var mi1=t1.split(":")[1];
    var dat1=new Date(y1,m1,da1,h1,mi1);
    return dat1;
    }var dat1=getD(dt1);
    var dat2=getD(dt2);
    var c=dat2-dat1;
    alert("差"+Math.floor(c/3600000)+"小时"+Math.floor((c%3600000)/60000)+"分");
    </script>
    </html>
      

  2.   

    L@_@Kvar dt1 = "2009-11-5 10:30";
    var dt2 = "2009-11-8 9:20";
    var regTime = /(\d{4})-(\d{1,2})-(\d{1,2})( \d{1,2}:\d{1,2})/g;
    //alert(dt1.replace(regTime, "$2-$3-$1$4"));
    var interval = Math.abs(Date.parse(dt1.replace(regTime, "$2-$3-$1$4")) - Date.parse(dt2.replace(regTime, "$2-$3-$1$4")))/1000;
    var h = Math.floor(interval / 3600);
    var m = Math.floor(interval % 3600 / 60);
    alert(h + " 小时 " + m + " 分");
      

  3.   

    简单做法var startDate= new Date("2004/3/1 12:00"); 
    var endDate= new Date("2004/3/1 15:00"); 
    var df=(endDate.getTime()-startDate.getTime()); 
      

  4.   


        var dt1 = "2009-11-5 10:30"  
    var dt2 = "2009-11-8 9:20"
    function getHoursDiff(dt1,dt2) {
    if(typeof(dt1)=="string") {
    dt1=new Date(dt1.replace(/-/,'/'));
    dt2=new Date(dt2.replace(/-/,'/'));
    }
    var res=dt2-dt1;
    if(isNaN(res))
    throw Error("invalid dates arguments");
    return res/(1000*60*60);
    }
    var re=getHoursDiff(dt1,dt2);
    var h=parseInt(re);
    var m=parseInt((re-h)*60);
    alert("时间相隔"+h+"小时"+m+"分钟");
      

  5.   

    http://www.diybl.com/course/1_web/javascript/jsjs/20090318/162665.html
    参考 
      

  6.   

    <SCRIPT LANGUAGE="JavaScript"><!-- Begin
    function isValidDate(dateStr) {
    // Date validation function courtesty of 
    // Sandeep V. Tamhankar ([email protected]) -->// Checks for the following valid date formats:
    // MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYYvar datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit yearvar matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null) {
    alert(dateStr + " Date is not in a valid format.")
    return false;
    }
    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];
    if (month < 1 || month > 12) { // check month range
    alert("Month must be between 1 and 12.");
    return false;
    }
    if (day < 1 || day > 31) {
    alert("Day must be between 1 and 31.");
    return false;
    }
    if ((month==4 || month==6 || month==9 || month==11)  &&  day==31) {
    alert("Month "+month+" doesn't have 31 days!")
    return false;
    }
    if (month == 2) { // check for february 29th
    var isleap = (year % 4 == 0  &&  (year % 100 != 0 || year % 400 == 0));
    if (day>29 || (day==29  &&  !isleap)) {
    alert("February " + year + " doesn't have " + day + " days!");
    return false;
       }
    }
    return true;
    }function isValidTime(timeStr) {
    // Time validation function courtesty of 
    // Sandeep V. Tamhankar ([email protected]) -->// Checks if time is in HH:MM:SS AM/PM format.
    // The seconds and AM/PM are optional.var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;var matchArray = timeStr.match(timePat);
    if (matchArray == null) {
    alert("Time is not in a valid format.");
    return false;
    }
    hour = matchArray[1];
    minute = matchArray[2];
    second = matchArray[4];
    ampm = matchArray[6];if (second=="") { second = null; }
    if (ampm=="") { ampm = null }if (hour < 0  || hour > 23) {
    alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
    return false;
    }
    if (hour <= 12  &&  ampm == null) {
    if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
    alert("You must specify AM or PM.");
    return false;
       }
    }
    if  (hour > 12  &&  ampm != null) {
    alert("You can't specify AM or PM for military time.");
    return false;
    }
    if (minute < 0 || minute > 59) {
    alert ("Minute must be between 0 and 59.");
    return false;
    }
    if (second != null  &&  (second < 0 || second > 59)) {
    alert ("Second must be between 0 and 59.");
    return false;
    }
    return true;
    }function dateDiff(dateform) {
    date1 = new Date();
    date2 = new Date();
    diff  = new Date();if (isValidDate(dateform.firstdate.value)  &&  isValidTime(dateform.firsttime.value)) { // Validates first date 
    date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value);
    date1.setTime(date1temp.getTime());
    }
    else return false; // otherwise exitsif (isValidDate(dateform.seconddate.value)  &&  isValidTime(dateform.secondtime.value)) { // Validates second date 
    date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value);
    date2.setTime(date2temp.getTime());
    }
    else return false; // otherwise exits// sets difference date to difference of first date and second datediff.setTime(Math.abs(date1.getTime() - date2.getTime()));timediff = diff.getTime();weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
    timediff -= weeks * (1000 * 60 * 60 * 24 * 7);days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
    timediff -= days * (1000 * 60 * 60 * 24);hours = Math.floor(timediff / (1000 * 60 * 60)); 
    timediff -= hours * (1000 * 60 * 60);mins = Math.floor(timediff / (1000 * 60)); 
    timediff -= mins * (1000 * 60);secs = Math.floor(timediff / 1000); 
    timediff -= secs * 1000;dateform.difference.value = weeks + " 星期, " + days + " 天, " + hours + " 小时, " + mins + " 分 , " + secs + " 秒";return false; // form should never submit, returns false
    }
    //  End -->
    </script>
    <form onSubmit="return dateDiff(this);">
    <table>
    <tr><td>
    <pre>
    起始日期:  Date: <input type=text name=firstdate value="" size=10 maxlength=10>  (格式为:月月/日日/年年年年)
              Time: <input type=text name=firsttime value="" size=10 maxlength=10>  (格式为:时时:分分:秒秒am/pm)结束日期:  Date: <input type=text name=seconddate value="" size=10 maxlength=10>  (格式为:月月/日日/年年年年)
              Time: <input type=text name=secondtime value="" size=10 maxlength=10>  (格式为:时时:分分:秒秒am/pm)<center><input type=submit value="二者之差">
    二者之差为:<input type=text name=difference value="" size=50>
    </center>
    </pre>
    </td></tr>
    </table>
    </form>