HTML / JSP怀疑,在网页上打印日期

时间:2009-05-11 15:46:46

标签: java html datetime jsp

我创建了一个在网页上显示日期的功能,我将其上传到某个服务器上......

但是当我改变系统的日期时,我注意到日期取决于客户端机器..

是否无法从实际时间服务器获取日期并将该代码嵌入我的程序中..

希望我能够解释我的疑问..请用一些小样本代码给出一些解决方案..这会有所帮助..

非常感谢..

4 个答案:

答案 0 :(得分:3)

如果你用javascript编写它,那么...总是在客户端执行。如果您通过javascript计算日期,则为时已晚,该代码已消失。

要解决这个问题,你必须让你的js函数通过参数接收数据,并且应该在服务器端计算数据。

你可以做类似的事情。

<%@ page import ="java.util.Date" %><%--Imports date --%>
<% Date date = new Date();
   String strdate = date.toString();//could be formatted using SimpleDateFormat.
%>

  <!--must be inside a form -->  
  <input type="text" value="javascript:showDate('<%=strdate%>');"/>

  <!--must be inside a table-->
  <td>javascript:showDate(<%=strdate%>);</td>

或者更优雅的是,在java类中获取服务器日期,并将其写入请求:

//formattedDate is defined above, in the format you like the most. Could be a 
//java.util.date or a String
request.setDate("date",formattedDate);

然后,在你的jsp中,使用例如JSTL

<c:out value="${formattedDate}"/>

或者,

<% //this java code is run on the server side.
    String strdate = (String)request.getAttribute("date"); 
 %>
<%=strdate%><!-- prints strdate to jsp. Could put it in a table, form, etc -->

编辑 :在回复您的评论时,您应该:

<%--Imports java packages --%>
<%@ page import ="java.util.Date" %>
<%@ page import ="java.text.SimpleDateFormat"%>

<%-- Java code --%>
<% Date date = new Date();
   Calendar calendar = Calendar.getInstance(TIME_ZONE).setTime(date);
   SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
   String strdate = sdf.format(calendar.getTime());
%>

<html>
 <body>
 <!-- Does not need to use javascript. All work is done on the server side.-->
 <table>
   <tr>
     <td><%=strdate%></td>
   </tr>
 </table>
 </body>
</html>

我不知道你的时区是什么,但我相信你会这样做。 Calendar.getInstance()将TimeZone的实例作为参数。应该这样做

看看:

http://java.sun.com/javase/6/docs/api/java/util/TimeZone.html

http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

Interesting link about JSP

答案 1 :(得分:1)

使用服务器的日期初始化函数

var d = new Date(<%= new SimpleDateFormat("yyyy, M-1, dd").format(new Date()) %>);

答案 2 :(得分:0)

您编写的javascript函数显然取决于客户端中设置的日期

答案 3 :(得分:0)

根据您的服务器端语言,只需使用它的date()函数,该函数根据服务器时钟给出当前日期/时间。接下来,格式化该信息并将其作为设定值发送给客户端。

例如,在php中:

echo date();