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:
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:
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:
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:
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:
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:
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.
Partager