Compte à rebours PHP/Javascript

Résolu/Fermé
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 - 10 sept. 2012 à 07:33
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 10 sept. 2012 à 21:20
Bonjour,

J'ai récupéré un script pour faire un compte à rebours sur le site du zéro et j'aimerais inclure deux variables php. En fait, ce compte à rebours devra se faire sur 30 minutes (je retirerais les jours et les heures) à partir de deux donnée enregistrées en bdd : $time_debut et $time_final.

Pour l'instant ce code ne fonctionne pas vraiment, le compte à rebours tourne mais les données ne sont pas bonnes. Quelqu'un peut-il m'aider s'il vous plait ? Merci d'avance.




$pre_chrono = mysql_query("SELECT * FROM ma_table  ORDER BY id_infiltration ASC LIMIT 0,1");
$chrono = mysql_fetch_array($pre_chrono);
$time_debut = time ();
$time_final = $chrono['time_final'];



<script type="text/javascript">
function CompteARebours()
{
    var date_actuelle = new Date(<?= $time_debut ?>); // On déclare la date d'aujourd'hui.
    var annee = date_actuelle.getFullYear();

    var noel = new Date(<?= $time_final ?>); // On déclare la date de Noël.
				
	 if (noel.getTime() < date_actuelle.getTime()) // Si Noël est dépassé, on passe au Noël suivant !
	 noel = new Date(++annee, 11, 25, 8, 0, 0); // On re-déclare Noël pour qu'il ne soit pas passé.
        
        // Reste du script.

var tps_restant = noel.getTime() - date_actuelle.getTime(); // Temps restant en millisecondes

//============ CONVERSIONS

var s_restantes = tps_restant / 1000; // On convertit en secondes
var i_restantes = s_restantes / 60;
var H_restantes = i_restantes / 60;
var d_restants = H_restantes / 24;


    s_restantes = Math.floor(s_restantes % 60); // Secondes restantes
    i_restantes = Math.floor(i_restantes % 60); // Minutes restantes
    H_restantes = Math.floor(H_restantes % 24); // Heures restantes
    d_restants = Math.floor(d_restants); // Jours restants
//==================



var mois_fr = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

var texte = "Nous sommes le <strong>" +date_actuelle.getDate()+ " " +mois_fr[date_actuelle.getMonth()]+ " " +date_actuelle.getFullYear()+ "</strong>," +
            " et il est <strong>" +date_actuelle.getHours()+ "h" +date_actuelle.getMinutes()+ "</strong>.<br />";

    texte += "Il reste exactement <strong>" +d_restants+ " jours</strong>, <strong>" +H_restantes+ " heures</strong>," +
         " <strong>" +i_restantes+ " minutes</strong> et <strong>" +s_restantes+ "s</strong> avant d'ouvrir les cadeaux <:o).";


document.getElementById("affichage").innerHTML = texte;        

}
setInterval(CompteARebours, 1000); // Rappel de la fonction toutes les 1000 millisecondes (toutes les secondes quoi !).


</script>

A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 sept. 2012 à 21:20
Pour manipuler une date ou obtenir la date du jour vous devez créer un objet date. Il y a quatre façons de faire.

NomObjet = new Date()
NomObjet = new Date(" mois Jour, année heures:minutes:secondes ")
NomObjet = new Date(année, mois, jour)
NomObjet = new Date(année, mois, jour, heures, minutes, secondes)

La première syntaxe permet d'obtenir la date du jour dans le format (MM/JJ/AA)
La deuxième permet de forcer une date avec l'heure. chaîne de car. (strnig)
Les troisième et quatrième syntaxes en format (integer).
En n'initialisant pas l'heure (heure, minutes, secondes), leur valeur sera à zéro.

Exemples

Aujourdhui = new Date()
Noel = new Date("February 5, 2001 18:15:00")
Noel = new Date(97, 12, 25)
Noel = new Date(97, 12, 25, 1, 0, 0)


hors toi tu utilise $time_debut=time() qui va retourner le timestamp
essayes avec $time_debut=date("avec ici le format voulu") c'est à dire le même que celui dans ta BDD champ 'time_final'
0