2009-05-11 5 views
0

J'ai fait une fonction qui affiche la date sur la page web ,, et je téléchargé le même sur un serveur ...HTML/JSP doute, la date d'impression sur la page web

Mais quand je l'ai changé la date de mon système, je a remarqué que la date dépend de la machine client ..

est-il pas possible d'obtenir la date du serveur de temps réel et intégrer ce code dans mon programme ..

espoir que je suis en mesure d'expliquer mes doutes .. S'il vous plaît donner une solution à cela avec un petit échantillon de code .. ce serait utile ..

Merci beaucoup ..

+0

quelle langue nous parlons? php, java, python, ruby, C# ...? – Tom

+0

Vous avez répondu aux réponses que cela ne fonctionne pas, mais vous ne nous dites pas ce que vous avez essayé ou comment il échoue. Besoin de plus de détails – Anonymous

Répondre

3

Si vous l'avez écrit en javascript, eh bien ... qui exécute toujours le côté client. Si vous calculez la date par javascript, il est trop tard, ce code est parti. Pour résoudre ce problème, vous devez faire en sorte que votre fonction js reçoive des données via des paramètres et que ces données soient calculées côté serveur.

Vous pourriez faire quelque chose comme.

<%@ 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> 

Ou plus élégante, la date du serveur obtenir dans votre classe java, et l'écrire à la demande:

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

Et puis, dans votre jsp, en utilisant par exemple, JSTL

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

Ou,

<% //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 --> 

EDIT: En réponse à votre commentaire, vous devez:

<%--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> 

je ne sais pas ce que votre fuseau horaire, mais je suis sûr que vous faites. Calendar.getInstance() prend une instance de TimeZone en tant que paramètre.Cela devrait le faire

Jetez un oeil:

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

+0

je ne pouvais pas exécuter votre exemple avec précision, mais je peux imaginer votre programme me donnera l'heure du serveur sur la page Web, si vous peut écrire le code complet, en utilisant à l'intérieur d'une table fera ... – AGeek

+0

salut monsieur, votre code a travaillé .. mais un problème maintenant je fais face est que le serveur est basé aux États-Unis, et je suis de diff. pays si le temps ne correspond pas, pas pensé avant, donc je peux coder quelque chose ou obtenir le temps d'un autre site chaque fois que la page se charge, et arrive avec le temps de mon pays .. – AGeek

+0

Vous devriez jeter un oeil à la java classe .util.Calendar, en particulier à la méthode setTimeZone() – Tom

0

que vous avez écrit une fonction javascript qui est évidemment en fonction de la date fixée dans le client

+0

oui, j'ai écrit une fonction javascript qui dépend de la date définie dans le client ,, mais je veux que ce soit indépendant du client .. si le client change sa date sur le système, alors cela ne reflète pas sur la page Web ,, est là toute la logique pour résoudre ceci ... – AGeek

0

En fonction de votre langue côté serveur, il suffit d'utiliser sa fonction date() qui donne le date/heure actuelle en fonction de l'horloge du serveur. Ensuite, formatez cette info et envoyez-la au client en tant que valeur définie.

Par exemple, en php:

echo date(); 
+0

j'ai essayé ceci ,, il ne prend pas le temps du serveur, plutôt il prend le temps de machine de client. et j'ai testé ceci en mettant un code sur un serveur, et en accédant à mon ordinateur (avec la date et l'heure changé). mais il reflète la date du client plutôt serveur .. donc j'ai besoin de connaître un site Web qui offrent cette date etc. – AGeek

1

Initialiser la fonction avec la date du serveur

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

+0

donnant une erreur ... ne fonctionne pas !! – AGeek

+1

Quelle est l'erreur? – Powerlord

+0

Avez-vous importé 'java.text.SimpleDateFormat' et' java.util.Date' –