Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PHP ET JAVASCRIPT : AFFICHER UNE HORLOGE BASÉE SUR L'HEURE DU SERVEUR


Information sur la source

Catégorie :Date & Heure Classé sous : temps, unix, serveur, javascript, php Niveau : Initié Date de création : 23/08/2006 Date de mise à jour : 04/09/2006 13:25:00 Vu / téléchargé: 18 773 / 980

Note :
4,67 / 10 - par 3 personnes
4,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
//----------------------------------------------------------------------------------------------------------
//- méthode permettant de gérer un cadran (heure + date)                                                   -
//- @param id_cadran l'id du cadran                                                                   -
//- time le temps du serveur                                                                   -
//- appel le numéro d'appel (hasChildNodes() renvoie true sous FF et false sous IE ...)        -
//- @return rien                                                                                           -
//----------------------------------------------------------------------------------------------------------
function horloge(id_cadran, time, appel)
{
}
 

Source

  • //----------------------------------------------------------------------------------------------------------
  • //- méthode permettant de gérer un cadran (heure + date) -
  • //- @param id_cadran l'id du cadran -
  • //- time le temps du serveur -
  • //- appel le numéro d'appel (hasChildNodes() renvoie true sous FF et false sous IE ...) -
  • //- @return rien -
  • //----------------------------------------------------------------------------------------------------------
  • function horloge(id_cadran, time, appel)
  • {
  • // conversion en entier des variables time et appel; au premier appel ce sont des chaînes
  • time = parseInt(time);
  • appel = parseInt(appel);
  • // on en fait une date
  • var d = new Date(time * 1000);
  • // on récupère les différentes composantes
  • var heure = d.getHours();
  • var min = d.getMinutes();
  • var sec = d.getSeconds();
  • // gestion des 0 pour qu'il y ait toujours un chiffre de la forme xx
  • if (heure < 10)
  • {
  • heure = "0" + heure;
  • }
  • if (min < 10)
  • {
  • min = "0" + min;
  • }
  • if (sec < 10)
  • {
  • sec="0"+sec;
  • }
  • // le jour (libellé)
  • var day;
  • switch (d.getDay())
  • {
  • case 1: day = "lundi";
  • break;
  • case 2: day = "mardi";
  • break;
  • case 3: day = "mercredi";
  • break;
  • case 4: day = "jeudi";
  • break;
  • case 5: day = "vendredi";
  • break;
  • case 6: day = "samedi";
  • break;
  • case 0: day = "dimanche";
  • break;
  • default: day = "erreur : " + d.getDay();
  • }
  • // le mois
  • var mois;
  • switch (d.getMonth())
  • {
  • case 0: mois = "janvier";
  • break;
  • case 1: mois = "février";
  • break;
  • case 2: mois = "mars";
  • break;
  • case 3: mois = "avril";
  • break;
  • case 4: mois = "mai";
  • break;
  • case 5: mois = "juin";
  • break;
  • case 6: mois = "juillet";
  • break;
  • case 7: mois = "août";
  • break;
  • case 8: mois = "septembre";
  • break;
  • case 9: mois = "octobre";
  • break;
  • case 10: mois = "novembre";
  • break;
  • case 11: mois = "décembre";
  • break;
  • default: mois = "erreur : " + d.getMonth();
  • }
  • var annee = d.getFullYear(); // l'année xxxx
  • var jour = d.getDate(); // le jour (chiffre)
  • // si elle n'existe pas on la crée
  • if (appel == 1)
  • {
  • fieldset = document.createElement("fieldset");
  • legend = document.createElement("legend");
  • hr = document.createElement("hr");
  • br = document.createElement("br");
  • divCadran = document.createElement("div");
  • texteLegend = document.createTextNode("Horloge");
  • texteDate = document.createTextNode(day + " " + jour + " " + mois + " " + annee);
  • texteHeure = document.createTextNode(heure + " h " + min + " min " + sec + " sec");
  • divCadran.id = "divCadran";
  • // mise en forme du DOM
  • divCadran.appendChild(texteDate);
  • divCadran.appendChild(br);
  • divCadran.appendChild(texteHeure);
  • legend.appendChild(texteLegend);
  • fieldset.appendChild(legend);
  • fieldset.appendChild(hr);
  • fieldset.appendChild(divCadran);
  • document.getElementById(id_cadran).appendChild(fieldset);
  • }
  • else // sinon on met à jour la date et l'heure
  • {
  • document.getElementById("divCadran").childNodes.item(0).nodeValue = day + " " + jour + " " + mois + " " + annee;
  • document.getElementById("divCadran").childNodes.item(2).nodeValue = heure + " h " + min + " min " + sec + " sec";
  • }
  • // temps unix + 1
  • time = time + 1;
  • // incrémentation de appel
  • appel = appel + 1;
  • // on rappelle la fonction aprés une seconde
  • setTimeout("horloge('" + id_cadran + "', '" + time + "', '" + appel + "')",1000);
  • }
//----------------------------------------------------------------------------------------------------------
//- méthode permettant de gérer un cadran (heure + date)                                                   -
//- @param	id_cadran l'id du cadran                                                                   -
//-		time le temps du serveur                                                                   -
//-		appel le numéro d'appel (hasChildNodes() renvoie true sous FF et false sous IE ...)        -
//- @return rien                                                                                           -
//----------------------------------------------------------------------------------------------------------
function horloge(id_cadran, time, appel)
{
	// conversion en entier des variables time et appel; au premier appel ce sont des chaînes
	time = parseInt(time);
	appel = parseInt(appel);

	// on en fait une date
    	var d = new Date(time * 1000);

	// on récupère les différentes composantes
	var heure = d.getHours();
	var min = d.getMinutes();
	var sec = d.getSeconds();

	// gestion des 0 pour qu'il y ait toujours un chiffre de la forme xx
	if (heure < 10)
	{
		heure = "0" + heure;
	}
	if (min < 10)
	{
		min = "0" + min;
	}
	if (sec < 10)
	{
		sec="0"+sec;
	}

	// le jour (libellé)
	var day;

	switch (d.getDay())
	{
		case 1: day = "lundi";
		break;

		case 2: day = "mardi";
		break;

		case 3: day = "mercredi";
		break;

		case 4: day = "jeudi";
		break;

		case 5: day = "vendredi";
		break;

		case 6: day = "samedi";
		break;

		case 0: day = "dimanche";
		break;

		default: day = "erreur : " + d.getDay();
	}

	// le mois
	var mois;

	switch (d.getMonth())
	{
		case 0: mois = "janvier";
		break;

		case 1: mois = "février";
		break;

		case 2: mois = "mars";
		break;

		case 3: mois = "avril";
		break;

		case 4: mois = "mai";
		break;

		case 5: mois = "juin";
		break;

		case 6: mois = "juillet";
		break;

		case 7: mois = "août";
		break;

		case 8: mois = "septembre";
		break;

		case 9: mois = "octobre";
		break;

		case 10: mois = "novembre";
		break;

		case 11: mois = "décembre";
		break;

		default: mois = "erreur : " + d.getMonth();
	}

	var annee = d.getFullYear(); // l'année xxxx
	var jour = d.getDate(); // le jour (chiffre)

	// si elle n'existe pas on la crée
	if (appel == 1)
	{
		fieldset = document.createElement("fieldset");
		legend = document.createElement("legend");
		hr = document.createElement("hr");
		br = document.createElement("br");
		divCadran = document.createElement("div");
		texteLegend = document.createTextNode("Horloge");
		texteDate = document.createTextNode(day + " " + jour + " " + mois + " " + annee);
		texteHeure = document.createTextNode(heure + " h " + min + " min " + sec + " sec");

		divCadran.id = "divCadran";

		// mise en forme du DOM
		divCadran.appendChild(texteDate);
		divCadran.appendChild(br);
		divCadran.appendChild(texteHeure);
		legend.appendChild(texteLegend);
		fieldset.appendChild(legend);
		fieldset.appendChild(hr);
		fieldset.appendChild(divCadran);

		document.getElementById(id_cadran).appendChild(fieldset);
	}
	else // sinon on met à jour la date et l'heure
	{
		document.getElementById("divCadran").childNodes.item(0).nodeValue = day + " " + jour + " " + mois + " " + annee;
		document.getElementById("divCadran").childNodes.item(2).nodeValue = heure + " h " + min + " min " + sec + " sec";
	}

	// temps unix + 1
	time = time + 1;

	// incrémentation de appel
	appel = appel + 1;

	// on rappelle la fonction aprés une seconde
	setTimeout("horloge('" + id_cadran + "', '" + time + "', '" + appel + "')",1000);
}

Conclusion

Fonctionnement trés simple :
- charger la fonction avec la page: <body onload=\"javascript: horloge('cadran', '".time()."', '1');\">
- ajouter une div (ou boite en général) dans laquelle mettre l'heure: <div id=\"cadran\" class=\"cadran\"></div>

Et voilà, ceux qui consultent votre site ont maintenant l'heure du serveur en temps réel et non l'heure du client !!
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

23 août 2006 10:16:18 :
La catégorie Date/Heure est plus appropriée ...
23 août 2006 10:18:04 :
...
23 août 2006 12:37:04 :
innerHTML est déprécié donc DOM oblige ...
23 août 2006 15:03:00 :
Le bug de IE est corrigé grâce au commentaire de malalam ... par contre FireFox et IE ne retourne pas la même chose pour la méthode hasChildNodes donc un paramètres a été ajouté à la fonction ... PS: pour ceux qui se demandent pourquoi replaceChild() a été enlevé c'est qu'il y a un bug de cette méthode sous IE ...
23 août 2006 16:13:25 :
ajout du fichier zip
23 août 2006 16:17:08 :
changement de catégorie
23 août 2006 16:20:16 :
modification agencement source
04 septembre 2006 13:25:00 :
Conformément à certaines demandes un exemple complet de fonctionnement de l'horloge

Commentaires et avis

signaler à un administrateur
Commentaire de putch le 23/08/2006 11:46:07

salut !
euh ... c'est mes yeux parce que je vois pas beaucoup (pas du tout ^^) de PHP ??

sinon coté programamtion Javascript rien a dire ...

signaler à un administrateur
Commentaire de darkweaver87 le 23/08/2006 12:47:16

Salut !
En fait c'est que je l'utilise pour mon serveur Apache et <body onload=\"javascript: horloge('cadran', '".time()."');\"> c'est du PHP (du moins la fonction time()).

PS: la nouvelle version ne fonctionne plus sous IE car en fait le pauvre ne comprend pas grand chose en terme de normes ... ;) lol
Si on veut que ça fonctionne sous IE ... il faut remettre:
var texteDate = day + " " + jour + " " + mois + " " + annee;
var texteHeure = heure+" h "+min+" min "+sec + " sec";
document.getElementById(id_cadran).innerHTML = "<fieldset><legend>Horloge</legend><hr/>" + texteDate + "<br/>" + texteHeure + "</fieldset>"

à la place de :
// on met à jour le cadre
fieldset = document.createElement("fieldset");
legend = document.createElement("legend");
hr = document.createElement("hr");
br = document.createElement("br");
texteLegend = document.createTextNode("Horloge");
texteDate = document.createTextNode(day + " " + jour + " " + mois + " " + annee);
texteHeure = document.createTextNode(heure+" h "+min+" min "+sec + " sec");

// mise en forme du DOM
legend.appendChild(texteLegend);
fieldset.appendChild(legend);
fieldset.appendChild(hr);
fieldset.appendChild(texteDate);
fieldset.appendChild(br);
fieldset.appendChild(texteHeure);

// s'il y a déjà un contenu on le remplace
document.getElementById(id_cadran).replaceChild(fieldset, document.getElementById(id_cadran).firstChild);

signaler à un administrateur
Commentaire de malalam le 23/08/2006 13:07:48 administrateur CS

Hello,

quel est le pb avec IE ? Moi j'arrive à créer des éléments et des attributs sous IE.
Quand au innerHTML, tu peux prendre
document.getElementById('element_id').firstChild.nodeValue = valeur

signaler à un administrateur
Commentaire de lefter le 23/08/2006 16:51:53

Pour moi, il y a aucune fonction même dans le code ci-dessous :

<body onload=\"javascript: horloge('cadran', '".time()."');\">

Pour moi c'est plus tôt de ce genre là :

<body onload=\"javascript: horloge('cadran', '".<?php echo time(); ?>."'); ?">

signaler à un administrateur
Commentaire de darkweaver87 le 23/08/2006 17:29:57

Salut Lefter,

C'est vrai ... tu as raison ... c'est que moi dans ma tête j'avais tout le fichier alors je n'ai pas précisé ... bien sur que j'ai un echo mais il est beaucoup plus haut ...
Pour info je tiens à te préciser que mine de rien ça coûte en ressource d'ouvrir et fermer des balises pour l'interprêteur PHP donc dans mon code j'ai <?php au début et ?> à la fin ...

Merci pour ton commentaire.

@+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

programeur javascript,php,html [ par flolag ] si il ya des webmasters qui aurait creer ou qui voudrai proposez des scripts jaascript,php pour mon site sont les bienvenues.Aler sur mon site et dans fonction ereg() comme en php [ par eax ] salut!je suis débutant en javascriptje cherche une fonction en javascript qui fonctionne comme la fonction ereg() en phpsi qqun connait un tutorial po Recuperer le SId avec javascript [ par nikos283 ] SalutJ'ai une petit proble, voila j'ai une page php qui crée une session et j'aimerai avec javascript recupérer le nom et valeur de cette session. pou php et javascript [ par overider ] salutje voudrais combiner un code javascript (obtenu avec 132menu téléchargeable en freeware sur www.telecharger.com) avec des donnés issus d'une requ JAVASCRIPT - PHP [ par iomega ] Bonjour à tous je voudrai savoir si c'est possible de récuper une variable PHP et y insérer dans un script Javascript Exemple $nom = ma variable PHP & Javascript et PHP [ par iomega ] Bonjour à tous voici mon ptit problème.j'ai une variable PHP $passeSignature qui me crypte le champ $txtSignature.Ce que je veux faire, c'est dans mon Du php dans un script javascript. Est ce possible? [ par bouchardg ] Bonjour,Est ce qu'il est possible d'incorporer du php dans un script javascript?Par exemple: j'aimerai faire un menu javascript pour des films, et je php et javascript dans une boite confirm [ par alexjet ] bonjour à tous, J'aimerai recupérer dans une variable php une variable javascript, voici mon script : ---------------------- function confirm($msg) { JavaScript utilisée dans PHP [ par Chinatraveler ] BonjourDans une même page *.php mêlant PHP et javascript, je souhaite utiliser l'objet "document.referrer" dans une condition "if" PHP.Est-ce possible Passage de variable javascript vers php [ par zakuli ] Bonjour,Débutant Javascript, j'aimerai savoir s'il éxiste un moyen simple de passer une variable (issue d'une fonction javascript) à un script php.Exe


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,967 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.