JSP获取服务器时间以倒计时的形式在页面显示

复制代码 代码如下:

  <%@ page language="java" import="java.util.*"%>

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <%@ include file="/commons/meta.jsp"%>

  <%@ include file="/commons/meta-et.jsp"%>

  <%

  Calendar cal = Calendar.getInstance();

  int hour = cal.get(cal.HOUR_OF_DAY);

  int minute = cal.get(cal.MINUTE);

  int month = cal.get(cal.MONTH);

  int date = cal.get(cal.DATE);

  int year = cal.get(cal.YEAR);

  int second = cal.get(cal.SECOND);

  %>

  <script type="text/javascript" defer="defer">

  var NowHour = "";//Today.getHours();

  var NowMinute = "";//Today.getMinutes();

  var NowMonth = "";//Today.getMonth();

  var NowDate = "";//Today.getDate();

  var NowYear = "";//Today.getYear();

  var NowSecond = "";//Today.getSeconds();

  //获取服务端时间

  function getTime(){

  NowHour = <%=hour%>;

  NowMinute = <%=minute%>;

  NowMonth = <%=month%>;

  //NowMonth = (parseInt(NowMonth)+1);

  NowDate = <%=date%>;

  NowYear = <%=year%>;

  NowSecond = <%=second%>;

  }

  getTime();

  startclock();

  var timerID = null;

  var timerRunning = false;

  function showtime() {

  var time='${enddate}';//获取数据库中结束时间或开始时间,然后开始计算离开始或结束还差多少时间

  NowSecond = (parseInt(NowSecond)+1);

  //-------------------------------------------------------------------

  var a, a1, a2;

  var EndTime ;

  a = unescape('${enddate}').split(" "); //这是注释,此句是倒计时准确度的关键,调整成其他需要的时间即可,例如2012-12-20等。

  if(a.length > 1){

  a1 = a[0].split("-");

  a2 = a[1].split(":");

  EndTime= new Date(a1[0], a1[1] - 1, a1[2], a2[0], a2[1],a2[2]);

  }

  var NowTime= new Date(NowYear,NowMonth,NowDate,NowHour,NowMinute,NowSecond);

  var nMS =EndTime.getTime() - NowTime.getTime();

  var nD =Math.floor(nMS/(1000 * 60 * 60 * 24));

  var nH=Math.floor(nMS/(1000*60*60)) % 24;

  var nM=Math.floor(nMS/(1000*60)) % 60;

  var nS=Math.floor(nMS/1000) % 60;

  var dddd= nD+'-'+nH+'-'+nM+'-'+nS;

  if(nD>= 0){

  document.getElementById('RemainD').innerText = nD;

  document.getElementById('RemainH').innerText = nH;

  document.getElementById('RemainM').innerText = nM;

  document.getElementById('RemainS').innerText = nS;

  }else {

  document.getElementById('CountMsg').innerText="所有时间到!";

  }

  setTimeout("showtime()", 1000);

  }

  function startclock() {

  showtime(); //调用计算时间差方法,并显示

  }

  </script>

  </head>

  <body>

  <div id="CountMsg">

  距离结束还剩<font color="red" size=5><strong id="RemainD">XX</strong>天<strong id="RemainH">XX</strong>时<strong id="RemainM">XX</strong>分<strong id="RemainS">XX</strong>秒</font>

  </div>

  </body>

  </html>