给你一个思路, 你自己再优化改装一下:
<form name=form1>
<input name=d1 onblur="mm()" value="2001-11-19 08:00">
<input name=d2 onblur="mm()" value="2001-11-20 16:00">
<input name=d3>
</form><SCRIPT LANGUAGE="JavaScript"><!--
function mm()
{
  var d1 = document.form1.d1;
  var d2 = document.form1.d2;
  var d3 = document.form1.d3;
  if (d1.value=="" || d2.value=="") return;
  var n1 = new Date(d1.value.replace(/-/g, "/"));
  var n2 = new Date(d2.value.replace(/-/g, "/"));
  var s  = "";
  var n  = Math.abs(n2.getTime() - n1.getTime());
   n = n - 1000*60*30;  //这个就是你所需要的减去半小时
  var d  = parseInt(n/(1000*60*60*24));
  s += (d!=0) ? d +"天" : "";
  n = n%(1000*60*60*24);
  d = parseInt(n/(1000*60*60));
  s += (d!=0) ? d +"小时" : "";
  n = n%(1000*60*60);
  d = parseInt(n/(1000*60));
  s += (d!=0) ? d +"分" : "";
  n = n%(1000*60);
  d = parseInt(n/(1000));
  s += (d!=0) ? d +"秒" : "";  d3.value = s;
}
// --></SCRIPT>