begin process at 2012 02 14 10:07:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :26 001 / 1 178

Auteur : darkweaver87

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
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

Les Membres Club peuvent 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

 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture INTERNET DESKTOP par TomReagan
EXPORTATION DES TABLEAUS VERS EXCEL par isecso
Source avec Zip COLORATION PHP, CSS, HTML, JAVASCRIPT par Vince_02
FAIRE PASSER DES VARIABLES JAVASCRIPT EN PHP ET INVERSEMENT par stfou
Source avec Zip ÉDITEUR WEB ET TEXTE AVEC MULTIFONCTIONS par abdelaziz_info

Commentaires et avis

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

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);

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

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(); ?>."'); ?">

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.

@+

Commentaire de Ahmekri le 28/05/2011 07:14:27 1/10

Salem Alaykom

voici un code plus simple :
<html><head>
<script language="javascript">
function rafraichir()
{
var date = new Date();
var text = date.toLocaleString();
document.getElementById('affichage_date').innerHTML = text;
}
document.write('');
setInterval('rafraichir()',1000);
</script>
</head>
<body>
<div align="right" id="affichage_date"><br /></div>
</body>
</html>

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Chrono Javascript dans page php [ par michaelminelli1 ] Bonjour, Je calcul un certain temps avec une page php que je met un include dans ma page d'index, et j'aimerai que ce temps (temps d'une variable moi Comment appeler une variable php dans une fonction d'un fichier javascript [ par momoch2 ] Bonjour à tous, Je voudrais tester une variable php dans une fonction javascript. Comment faire ? Merci Exécuter un javascript dans une page PHP chargée par AJAX [ par roro59650 ] Bonjour tout le monde,Tout d'abord, merci de me lire!Bon ensuite, pour ce qui m'intéresse : j'ai une application intranet, donc je peut utiliser le ja Transformer un tableau d'objets Php en tableau d'objets Javascript [ par alteus34 ] Bonjour, J'ai un tableau d'objets en Php ( mysql_fetch_object($handle)) que je dois transformer en tableau d'objets en javascript ! Y a t-il une fonc Tableau en Php javascript [ par hilquatar ] Bojour! j'ai en fait une listbox avec un lien > au dessus et > en dessous pour ajouter et enlever une ligne de la listebox. une ligne contient des Script ajax/Php [ par Mickael33480 ] Bonjour à tous, Je vous contact car j'ai besoins d'un coups de main par rapport à un script que j'essaye de faire. Je débute en Javascript/Ajax et là ajax/javascript (rémunéré) [ par bZx ] Je suis sur le développement d'un site depuis un certain temps et, après une nuit blanche sur du bon vieux php5 (que je maitrise assez bien) je me sui Appeler une ancre d'une autre page au coeur d'une fonction Javascript [ par MissArmande ] Bonjour à tous, Je suis en train de réaliser mon premier site web, et je m'arrache un peu les cheveux. J'utilise un javascript, trouvé sur le site ( comment tester une variable php dans fonction javascript [ par bello10 ] Bonjour à tous, Je voudrais tester une variable php dans une fonction javascript. Comment faire ? Merci Du dinamique avec du JavaScript [ par minimoysmini ] Salut, Voila je connais pas mal de truc en informatique. Je c'est programmer en C#,HTML,JavaScript et CSS. Puis j'ai eu envie de créer un jeux sur i


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,198 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales