Problème date javascript

Fermé
papoupapou - 5 avril 2011 à 15:38
wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 - 7 avril 2011 à 16:06
Bonjour,

Voici mon code actuel :
echo "
function docounter() {";
echo"
nowDate = new Date();
nowTime = Math.floor((nowDate.getTime()/1000));
hereSince = nowTime - DateActuelle;
if(nowTime> DateCalendrier) {
yearSince = nowTime - DateCalendrier;";

for ($i=0;$i<$u;$i++)
{

echo "document.getElementById('compteur_".$maladie[$i]."').innerHTML=Math.floor(tab_maladies['".$maladie[$i]."']/ seconds_year * hereSince);
document.getElementById('".$maladie[$i]."_year').innerHTML=Math.floor(tab_maladies['".$maladie[$i]."'] / seconds_year * yearSince);";
}
echo "var setT = setTimeout('docounter()',1000);";

echo "}";

echo "else {
alert('Module Statistics : Choisir une date anterieure a la date actuelle');
}";
echo "}";
echo "if (document.getElementById) {
docounter();
}";
echo"</script>\n";

Avec ce code, tout fonctionne correctement. Seleument voilà, au lieu de récupérer la date locale avec le new Date(), je veux récupérer la date du serveur, j'ai donc fais comme ça:

function docounter() {";
$heure_actuelle=date('d-m-Y H:i:s');
$heure_actuelle=strtotime($heure_actuelle);
echo"
nowDate = $heure_actuelle; ......

Avec ceci je récupère bien la date du serveur, mais maintenant mes valeurs ne s'incrémentent plus en temps réel mais seulement quand on rafraîchit la page. D'où vient mon problème ? merci d'avance.

9 réponses

wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 6
5 avril 2011 à 16:11
Salut !

Le problème vient simplement du fait que tu set la variable javascript avec une date calculée en PHP, donc qui ne se raffraichi que côté serveur.
Il faut donc que tu reload ta page pour que ta date PHP soit raffraichie et qu'elle soit changée sur ta page.
1
Ok c'est bien ce que je me disais.. mais dans ce cas comment faire pour pour pouvoir réaliser mon calcul en temps réel avec la date du serveur ? Merci pour ta réponse :)
0
Bon en fait je suis parti sur une toute autre solution. Voici mon nouveau code:

<?php
echo"
<script>
function docounter() {
document.getElementById('compteur_".$maladie[0] ."').innerHTML=Math.floor(".$morts_cookie." + ".$result[0].");
var setT = setTimeout('docounter()',1000);
}
if (document.getElementById) {
docounter();
}
</script>";

?>

Mais la aussi la valeur ne s'incrémente pas :( , pourtant les valeurs PHP n'ont pas besoin d'être actualisées ici. Quel est donc le problème ?
0
wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 6
6 avril 2011 à 07:35
Salut !

Je ne sais pas quelles sont les variables $mort_cookie et $result, mais ce que tu peux faire, en utilisant ton timeout de 1000 ms, c'est, dans ta méthode docounter, ajouter à chaque appel 1000 ms à la date actuelle :

var date = initialisée par la date php
docounter()
{
     date.setTime(date.getTime + 1000); // Tu incrémente de 1000ms l'ancienne date.
     // Tu affiche ta date.
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup pour ta réponse ^^, mais en fait le problème n'est plus la date désolé de ne pas l'avoir précisé... en fait, je voulais me servir de la date plus haut pour incrémenter mes autres valeurs. Dans mon second script, je n'utilise plus la date, je voulais tous simplement incrémenter mes valeurs via des variables php, ce qui ne marche pas non plus...
0
wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 6
6 avril 2011 à 09:42
De rien ^^

Dis-moi ce que tu veux faire maintenant et comment tu comptes le faire.
Met un bout de code, peut-être que je pourrai t'aider !
0
En fait c'est good lol j'ai réglé tous mes problèmes :) . Merci encore wyllyjon de m'avoir aidé ;) passe une bonne journée !
0
wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 6
6 avril 2011 à 13:38
no pb, c'était avec plaisir :D
0
wyllyjon Messages postés 30 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 8 avril 2011 6
7 avril 2011 à 16:06
Si tu peux passer le post en "résolu", ça pourra peut-être aider du monde !

Merci :-D
0