>  기사  >  웹 프론트엔드  >  HTML如何返回服务器的时间?_html/css_WEB-ITnose

HTML如何返回服务器的时间?_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 11:32:241448검색

HTML如何返回服务器的时间?返回的时间格式为2015-12-01 11:11:11,谢谢,越简单越好。


回复讨论(解决方案)

没办法获取,只能后台页面输出

从后台取得后,传递给前台。。。

从后台取得后,传递给前台。。。


求相关代码

获取本地时间的代码如下,能否按此修改成获取服务器的时间?

          function getTime(){                var today = new Date();                 var year = today.getFullYear();                 var month = today.getMonth() + 1;                 var day = today.getDate();                 var hours = today.getHours();                 var minutes = today.getMinutes();                 var seconds = today.getSeconds();                 if(month < 10){                     month = "0" + month;                }                if(day < 10){                     day = "0" + day;                }                if(hours < 10){                    hours = "0" + hours;                }                if(minutes < 10){                     minutes = "0" + minutes;                }                if(seconds < 10){                    seconds = "0" + seconds;                }                var time = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;                          document.getElementById("currentTime").innerHTML = time;                setTimeout("getTime()",1000);              }

后台提供接口,利用ajax从接口获取服务器时间即可,示例如下
$.get("data.php",null,function(data){
       document.getElementById("currentTime").innerHTML = data.time;
);

后台传给前台

后台传给前台


愿闻其详

现在都有推技术的。为什么不可以。用sse或websocket都可以

一个java servlet示例:
环境tomcat7 && java7 && servlet3.01
javascript:

<script type="text/javascript">function sseHandler(){    if(typeof(EventSource)!="undefined"){        var source=new EventSource("time");        source.onopen = function(event) {            console.log("sse opened!");        };        source.onmessage=function(event){                console.log(event.data);        };    }else{         console.log("HTML5 not supported");    }}window.addEventListener("load", sseHandler);</script>


异步servlet :TimeServiceServlet
import java.io.IOException;import java.util.concurrent.ScheduledThreadPoolExecutor;import javax.servlet.AsyncContext;import javax.servlet.AsyncEvent;import javax.servlet.AsyncListener;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class TimeServiceServlet */@WebServlet(urlPatterns = {"/time"}, asyncSupported = true)public class TimeServiceServlet extends HttpServlet {	private static final long serialVersionUID = 1L;	//private final Queue<AsyncContext> ongoingRequests = new ConcurrentLinkedQueue<>();    /**     * @see HttpServlet#HttpServlet()     */    public TimeServiceServlet() {        super();        // TODO Auto-generated constructor stub    }	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		request.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);		response.setContentType("text/event-stream");		response.setCharacterEncoding("UTF-8");		final AsyncContext ac = request.startAsync();		ac.setTimeout(1*1000);		ac.addListener(new AsyncListener() {		      @Override public void onComplete(AsyncEvent event) throws IOException {		    	  System.out.println("@c");		      }		      @Override public void onTimeout(AsyncEvent event) throws IOException {		    	  System.out.println("@t");		      }		      @Override public void onError(AsyncEvent event) throws IOException {		    	  System.out.println("@e");		      }		      @Override public void onStartAsync(AsyncEvent event) throws IOException {		    	  System.out.println("@s");		      }		});	    ScheduledThreadPoolExecutor ec=new ScheduledThreadPoolExecutor(10);	    ec.execute(new AsyncTimeService(ac));	}}

Runnable实现类:AsyncTimeService,用以输出日期字符串
import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.AsyncContext;public class AsyncTimeService implements Runnable {	AsyncContext ac;		public AsyncTimeService(AsyncContext ac) {		super();		this.ac = ac;	}	@Override	public void run() {		// TODO Auto-generated method stub		Date now=new Date();		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");				try {			PrintWriter out = ac.getResponse().getWriter();			out.write("data:"+sdf.format(now)+ "\n\n");		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}finally{			ac.complete();		}	}}


一个java servlet示例:
环境tomcat7 && java7 && servlet3.01
javascript:

<script type="text/javascript">function sseHandler(){    if(typeof(EventSource)!="undefined"){        var source=new EventSource("time");        source.onopen = function(event) {            console.log("sse opened!");        };        source.onmessage=function(event){                console.log(event.data);        };    }else{         console.log("HTML5 not supported");    }}window.addEventListener("load", sseHandler);</script>


异步servlet :TimeServiceServlet
import java.io.IOException;import java.util.concurrent.ScheduledThreadPoolExecutor;import javax.servlet.AsyncContext;import javax.servlet.AsyncEvent;import javax.servlet.AsyncListener;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class TimeServiceServlet */@WebServlet(urlPatterns = {"/time"}, asyncSupported = true)public class TimeServiceServlet extends HttpServlet {	private static final long serialVersionUID = 1L;	//private final Queue<AsyncContext> ongoingRequests = new ConcurrentLinkedQueue<>();    /**     * @see HttpServlet#HttpServlet()     */    public TimeServiceServlet() {        super();        // TODO Auto-generated constructor stub    }	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		request.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);		response.setContentType("text/event-stream");		response.setCharacterEncoding("UTF-8");		final AsyncContext ac = request.startAsync();		ac.setTimeout(1*1000);		ac.addListener(new AsyncListener() {		      @Override public void onComplete(AsyncEvent event) throws IOException {		    	  System.out.println("@c");		      }		      @Override public void onTimeout(AsyncEvent event) throws IOException {		    	  System.out.println("@t");		      }		      @Override public void onError(AsyncEvent event) throws IOException {		    	  System.out.println("@e");		      }		      @Override public void onStartAsync(AsyncEvent event) throws IOException {		    	  System.out.println("@s");		      }		});	    ScheduledThreadPoolExecutor ec=new ScheduledThreadPoolExecutor(10);	    ec.execute(new AsyncTimeService(ac));	}}

Runnable实现类:AsyncTimeService,用以输出日期字符串
import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.AsyncContext;public class AsyncTimeService implements Runnable {	AsyncContext ac;		public AsyncTimeService(AsyncContext ac) {		super();		this.ac = ac;	}	@Override	public void run() {		// TODO Auto-generated method stub		Date now=new Date();		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");				try {			PrintWriter out = ac.getResponse().getWriter();			out.write("data:"+sdf.format(now)+ "\n\n");		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}finally{			ac.complete();		}	}}

这段代码好高深,以后慢慢研究。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.