Compte à rebours

Résolu
Kamal -  
albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis un jeune développeur Web , et j'essaie de créer une méthode pour indiquer à mes utilisateurs le temps restant.

Dans ma base de données Mysql , j'ai une table de type ( c'est un exemple seulement ) :

table Offre ( id , nom , date-depot)

date-depot : DateTime
id : int
nom : Varchar

Ma question :

Vue que la date est insérée automatiquement via mon code Php.

je veux récupérer la date de ma table ==> ça je peux le faire.

Puis afficher le temps restant entre ma date-depot et ma ( date-depot + 3 heure + 2 minutes )

Merci D'avance

4 réponses

albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
Sous quelle forme tu entre ta date dans ta BDD ?
0
Kamal
 
ma date est de la form DateTime ( jour / mois / Année Heure / Minutes / secondes )
0
albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
et tu veut savoir le temps (en heure) qu'il c'est déroulé entre le moment de depot et le moment actuel ?
0
Kamal
 
bin je vx .. un compte rebours dynamique en seconde aussi
0
albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
Je te donne le code php pour afficher le temps restant par contre oublie ton affichage dynamique (j'ai pas trop le temps d'écrire le code car là c'est en plus un peu plus technique ;)

le code qui suit marche très bien Si tu essaies d'intégréer ta date de la forme "jour-mois-année 9:45" où 9:45 désigne 9h du matin et 45 minutes (dis le moi si tu ne sais pas) par contre il y aura pas de secondes (c'est un peut superflus non ?!). Bref dans le code qui suit l'algorithme calcule le temps écoulé entre maintenant et le 2 fevrier 2012 à 4 heures du matin
(
 $date = "02-02-2012 4:00";
). A toi de remplacer cette date: par celle insérée dans la base de donnée

<?php
function temps_ecoule($date,$type) {
	if($type == "timestamp") {
		$date2 = $date; // depuis cette date
	} elseif($type == "date") {
		$date2 = strtotime($date); // depuis cette date
	} else {
		return "Non reconnu";
		exit();
	}
	$date1 = date("U"); // à la date actuelle
	$return = "";
	// ########  ANNEE ########
	if((date('Y',$date1 - $date2)-1970) > 0) {
		if((date('Y',$date1 - $date2)-1970) > 1) {
			$echo_annee = (date('Y',$date1 - $date2)-1970)." Anneés";
			$return = $echo_annee.", ";
		} else {
			$echo_annee = (date('Y',$date1 - $date2)-1970)." Année";
			$return = $echo_annee.", ";
		}
	} else {
		$echo_annee = "";
		$return = $return;
	}
	// ########  MOIS ########
	if((date('m',$date1 - $date2)-1) > 0) {
		$echo_mois = (date('m',$date1 - $date2)-1)." Mois ";
		if(!empty($echo_annee)) {
			$return = $echo_annee." et ".$echo_mois;
		} else {
			$return = $echo_mois;
		}
	} else {
		$echo_mois = "";
		$return = $return;
	}
	// ########  JOUR ########
	if((date('d',$date1 - $date2)-1) > 0) {
		if((date('d',$date1 - $date2)-1) > 1) {
			$echo_jour = (date('d',$date1 - $date2)-1)." Jours";
			if(!empty($echo_annee) OR !empty($echo_mois)) {
				$return = $return.$echo_mois." et ".$echo_jour;
			} else {
				$return = $return.$echo_mois.$echo_jour;
			}
		} else {
			$echo_jour = (date('d',$date1 - $date2)-1)." Jour";
			if(!empty($echo_annee) OR !empty($echo_mois)) {
				$return = $return.$echo_mois." et ".$echo_jour;
			} else {
				$return = $return.$echo_mois.$echo_jour;
			}
		}
	} else {
		$echo_jour = "";
		$return = $return;
	}
	// ########  HEURE ########
	if((date('H',$date1 - $date2)-1) > 0) {
		if((date('H',$date1 - $date2)-1) > 1) {
			$echo_heure = (date('H',$date1 - $date2)-1)." Heures";
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour)) {
				$return = $echo_annee.$echo_mois.$echo_jour." et ".$echo_heure;
			} else {
				$return = $echo_annee.$echo_mois.$echo_jour.$echo_heure;
			}
		} else {
			$echo_heure = (date('H',$date1 - $date2)-1)." Heure";
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour)) {
				$return = $echo_annee.$echo_mois.$echo_jour." et ".$echo_heure;
			} else {
				$return = $echo_annee.$echo_mois.$echo_jour.$echo_heure;
			}
		}
	} else {
		$echo_heure = "";
		$return = $return;
	}
	// ########  MINUTE ET SECONDE ########
	$virgule_annee = "";
	$virgule_mois = "";
	$virgule_jour = "";
	if(date('i',$date1 - $date2) > 0) {
		if(date('i',$date1 - $date2) > 1) {
			$echo_minute = round(date('i',$date1 - $date2))." Minutes";
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
				if(!empty($echo_annee)) {
					if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_annee = ", ";
					}
				}
				if(!empty($echo_mois)) {
					if(!empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_mois = ", ";
					}
				}
				if(!empty($echo_jour)) {
					if(!empty($echo_heure)) {
						$virgule_jour = ", ";
					}
				}
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure." et ".$echo_minute;
			} else {
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
			}
		} else {
			$echo_minute = round(date('i',$date1 - $date2))." Minute";
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
				if(!empty($echo_annee)) {
					if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_annee = ", ";
					}
				}
				if(!empty($echo_mois)) {
					if(!empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_mois = ", ";
					}
				}
				if(!empty($echo_jour)) {
					if(!empty($echo_heure)) {
						$virgule_jour = ", ";
					}
				}
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure." et ".$echo_minute;
			} else {
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
			}
		}
	} else {
		if(date('s',$date1 - $date2) > 1) {
			$echo_minute = round(date('s',$date1 - $date2))." Secondes";
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
				if(!empty($echo_annee)) {
					if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_annee = ", ";
					}
				}
				if(!empty($echo_mois)) {
					if(!empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_mois = ", ";
					}
				}
				if(!empty($echo_jour)) {
					if(!empty($echo_heure)) {
						$virgule_jour = ", ";
					}
				}
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure." et ".$echo_minute;
			} else {
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
			}
		} else {
			if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
				if(!empty($echo_annee)) {
					if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_annee = ", ";
					}
				}
				if(!empty($echo_mois)) {
					if(!empty($echo_jour) OR !empty($echo_heure)) {
						$virgule_mois = ", ";
					}
				}
				if(!empty($echo_jour)) {
					if(!empty($echo_heure)) {
						$virgule_jour = ", ";
					}
				}
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure." et ".$echo_minute;
			} else {
				$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour.$virgule_jour.$echo_heure.$echo_minute;
			}
		}
	}
	return "Il y a ".$return;
}
echo '<pre>';

$date = "02-02-2012 4:00";
echo temps_ecoule($date,"date")."\n";


?> 
0
albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
J'oubliais il ya toujour moyen de mettre ta date sous la forme
"jour-mois-année H:m"
si tu a sous la forme "jour / mois / Année / Heure / Minutes / secondes"
Tu devrais utiliser une REGEX en l'occurence la REGEX preg_split ... tu connais non ?

si tu connais pas donne moi la structure exacte d'insertion de la date dans ta base de donnée (avec exemple si possible) car il n'y pas qu'une seule forme de Datetime et en plus celle que tu ma donnée plus haut m'a l'air douteuse : "( jour / mois / Année Heure / Minutes / secondes )" Tu ne sépares pas l'année et l'heure ?!!
0
Kamal
 
Albert Ton Code marche Extra Nikel Chez moi .. il es super bien ..

durant mes recherche j ai trouvé un Code Jquery avec un Design Appel , actuellement J utilise ton code qui est facile à intégrer

Merci Bcp
0
albertdu93 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
D.E.R.I.E.N ;D
0