Bonjour à tous, j'ai une fonction js de compte à rebours qui marche très bien quand je l'exécute dans un fichier HTML comme ceci:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<html>
<head>
 <script type="text/javascript"></script>
  <script src="script_decompte.js" type="text/javascript"></script>
</head>
<body onload="compte_a_rebour()">
<div id="CompteARebours"></div>
</body>
</html>

Fonction Javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
function compte_a_rebour()
			{
 
				var CompteARebours = document.getElementById("CompteARebours");
			   //ici on recuper la date en cours
				var date_actuelle = new Date()/1000;
			   // ici la date de fin de l ofre
				var date_evenement = 1311976800;
			   // difference de date en seconde
 
				var secondes = (date_evenement - date_actuelle);
				//Si la variable secondes est une valeur positive, c'est que le compte 
				//à rebours n'est pas terminé ; si c'est une valeur négative, 
				//c'est qu'il est terminé. On fait donc une petite condition : 
				if(secondes > 0){
 
					DiffJour = Math.floor (secondes / 86400);
					DiffHeure = Math.floor ((secondes - (DiffJour * 86400)) / 3600);
					DiffMin = Math.floor ((secondes - ((DiffJour * 86400 + DiffHeure * 3600))) / 60);
					DiffSec = Math.floor (secondes - ((DiffJour * 86400 + DiffHeure * 3600 + DiffMin * 60)));
 
					var Et = "et";
 
					if(DiffJour == 0){
						DiffJour = '';
						Jour = '';
					} else {
						Jour = (DiffJour == 1) ? "jour," : "jours,";
					}
 
					if(DiffHeure == 0){
						DiffHeure = '';
						Heure = '';
					} else {
						Heure = (DiffHeure == 1) ? "heure," : "heures,";
					}
					if(DiffMin == 0){
						DiffMin = '';
						Minute = '';
 
					} else {
						Minute = (DiffMin == 1) ? "minute" : "minutes";
					}
					if(DiffSec == 0){
						DiffSec = '';
						Seconde = '';
						Et = '';
					} else {
						Seconde = (DiffSec == 1) ? "seconde" : "secondes";
						Et = (DiffMin == 0 && DiffHeure == 0 && DiffJour == 0) ? "" : "et";
					}
					CompteARebours.innerHTML = DiffJour + ' ' + Jour + ' ' + DiffHeure + ' ' + Heure + ' ' + DiffMin + ' ' + Minute + ' ' + Et + ' ' + DiffSec + ' ' + Seconde;
				} else {
					CompteARebours.innerHTML = 'Compte à rebours terminé.';
				}
				Time_ReLance = setTimeout("compte_a_rebour();", 1000);
			}
Résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
4 jours, 11 heures, 29 minutes et 37 secondes
Mais le problème c'est que je dois récupérer date_evenement dans ma base de données donc je devrais passer un paramètre à ma fonction.
Et je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
function compte_a_rebour(sec)
 {
var CompteARebours = document.getElementById("CompteARebours");
//date actuelle en secondes
var date_actuelle = new Date()/1000;
//date de fin en secondes                                                                  var date_evenement = new Date(sec);
// difference de date en seconde
var secondes = (date_evenement - date_actuelle);
//Si la variable secondes est une valeur positive, c'est que le compte 
//à rebours n'est pas terminé ; si c'est une valeur négative, 
//c'est qu'il est terminé. On fait donc une petite condition : 
if(secondes > 0){
 
	DiffJour = Math.floor (secondes / 86400);
	DiffHeure = Math.floor ((secondes - (DiffJour * 86400)) / 3600);
	DiffMin = Math.floor ((secondes - ((DiffJour * 86400 + DiffHeure * 3600))) / 60);
	DiffSec = Math.floor (secondes - ((DiffJour * 86400 + DiffHeure * 3600 + DiffMin * 60)));
 
	var Et = "et";
 
	if(DiffJour == 0){
		DiffJour = '';
		Jour = '';
		} else {
		Jour = (DiffJour == 1) ? "jour," : "jours,";
		}
 
		if(DiffHeure == 0){
		 DiffHeure = '';
		 Heure = '';
		} else {
		Heure = (DiffHeure == 1) ? "heure," : "heures,";
		}
		if(DiffMin == 0){
			DiffMin = '';
			Minute = '';
 
		} else {
		Minute = (DiffMin == 1) ? "minute" : "minutes";
		}
		if(DiffSec == 0){
			DiffSec = '';
			Seconde = '';
			Et = '';
		} else {
		Seconde = (DiffSec == 1) ? "seconde" : "secondes";
		Et = (DiffMin == 0 && DiffHeure == 0 && DiffJour == 0) ? "" : "et";
	      }
	CompteARebours.innerHTML = DiffJour + ' ' + Jour + ' ' + DiffHeure + ' ' + Heure + ' ' + DiffMin + ' ' + Minute + ' ' + Et + ' ' + DiffSec + ' ' + Seconde;
	} else {
	CompteARebours.innerHTML = 'Compte à rebours terminé.';
	}
	Time_ReLance = setTimeout("compte_a_rebour();", 1000);
			}
Et donc dans mon script PHP:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?php 
//je convertis la date de ma base en secondes
$sec = strtotime($valeur['date_fin']);
echo '
<span id = "CompteARebours">
<script language="javascript" type="text/javascript">
compte_a_rebour('.$sec.');
</script></span>';
?>

Mais ça ne marche pas, il ne m'affiche rien.

Et j'ai ceci lorsque j'affiche le code source:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
												<span id = "CompteARebours">
<script language="javascript" type="text/javascript">
compte_a_rebour(1311717600);
</script></span></a>

Comment dois-je faire pour appeler ma fonction js dans mon script PHP afin qu'elle s'exécute correctement?

Merci d'avance.