HTML / JSP Doubt, печать даты на веб-странице - PullRequest
0 голосов
/ 11 мая 2009

Я сделал функцию, которая отображает дату на веб-странице, и я загрузил ее на какой-то сервер ...

Но когда я изменил дату своей системы, я заметил, что дата зависит от клиентского компьютера.

Разве невозможно получить дату с сервера реального времени и встроить этот код в мою программу?

Надеюсь, я смогу объяснить свои сомнения .. Пожалуйста, дайте какое-нибудь решение этого с помощью небольшого примера кода ... это было бы полезно ..

Большое спасибо ..

Ответы [ 4 ]

3 голосов
/ 11 мая 2009

Если вы написали это в 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

Интересная ссылка о JSP

1 голос
/ 11 мая 2009

Инициализировать функцию с датой с сервера

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

0 голосов
/ 11 мая 2009

В зависимости от вашего серверного языка, просто используйте функцию date (), которая дает текущую дату / время на основе часов сервера. Затем отформатируйте эту информацию и отправьте ее клиенту в качестве заданного значения.

Например, в php:

echo date();
0 голосов
/ 11 мая 2009

Вы написали функцию javascript, которая, очевидно, зависит от даты, установленной в клиенте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...