我创建了一个在网页上显示日期的功能,我将其上传到某个服务器上......
但是当我改变系统的日期时,我注意到日期取决于客户端机器..
是否无法从实际时间服务器获取日期并将该代码嵌入我的程序中..
希望我能够解释我的疑问..请用一些小样本代码给出一些解决方案..这会有所帮助..
非常感谢..
答案 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
答案 1 :(得分:1)
使用服务器的日期初始化函数
var d = new Date(<%= new SimpleDateFormat("yyyy, M-1, dd").format(new Date()) %>);
答案 2 :(得分:0)
您编写的javascript函数显然取决于客户端中设置的日期
答案 3 :(得分:0)
根据您的服务器端语言,只需使用它的date()函数,该函数根据服务器时钟给出当前日期/时间。接下来,格式化该信息并将其作为设定值发送给客户端。
例如,在php中:
echo date();