Affichage date/heure en temps réel

Fermé
1234 - 9 oct. 2014 à 17:34
 1234 - 14 oct. 2014 à 14:30
Bonjour,

J'aimerai afficher la date et l'heure en temps réel sur mon site, mais je ne sais pas comment faire.

Voilà comment je veux faire:

J'ai mis en place sur mon site la fonction <marquee> et je voudrais avoir comme résultat:
(A l'interieur de <marquee>)Bonjour et bienvenue sur le site. Nous sommes le 09/10/2014 et il est 17h26

Et j'aimerai que la minute change sans avoir a recharger la page. J'ai essayé avec du javascript mais ca n'a pas marché. J'ai trouvé plusieurs scripts sur internet mais aucun n'a marché ou ne correspondaient pas a ce que je veux faire.

Le dernier que j'ai essayé c'est ca:

<marquee behavior="scroll" scrollamount="5" direction="left" width="100%">Bonjour et bienvenue sur le site!

 <?php

function date_heure()
{
    // On détermine la date
    $jour = date('d', time());
    $mois = date('m', time());
    $annee = date('Y', time());
 
    // On détermine l'heure
    $heure = date('H', time());
    $min = date('i', time());
 
    // Trois formes de présentations
    $date = 'Nous sommes le '.$jour.'/'.$mois.'/'.$annee;
    $heure_min = 'et il est '.$heure.'h'.$min;
    $date_heure = 'Nous sommes le '.$jour.'/'.$mois.'/'.$annee.' et il est '.$heure.'h'.$min;
 
    return $date_heure;
}
?>

</marquee>


Mais ca n'affiche ni la date ni l'heure....

Donc je voulais savoir comment je peux faire une fonction date/heure en temps réel?

Merci d'avance,

4 réponses

Bonjour, par exemple

<marquee behavior="scroll" scrollamount="5" direction="left" width="100%">
Bonjour et bienvenue sur le site!

<?php
setlocale(LC_TIME,"fr_FR.UTF-8","fra");
echo strftime("Bonjour nous sommes le %A %d %B %Y il est %H:%M", $_SERVER['REQUEST_TIME']);
?>

</marquee>



je te laisse chercher pour les fuseaux horaires.

Avec le PHP ce sera l'heure de la génération de la page par le serveur, donc pas du temps réel.

La balise marquee, bien longtemps que je ne l'avais pas vu celle là ^^

Cdt

En informatique 99% des problèmes se situent entre le fauteuil et le clavier
0
Bonsoir

Merci pour la réponse. J'ai essayé et ca marche. Je vais faire comme ca alors.

Merci,
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
Modifié par blux le 9/10/2014 à 18:29
Salut,

à partir du moment où tu utilises du PHP, tu n'auras que l'heure du serveur au moment où tu génères la page.

Si tu veux ça en live, il faut du javascript (que tu peux trouver ici)

Si tu n'as pas trouvé ton bonheur ou si ça ne marche pas en JS, il faut nous dire pourquoi, car en PHP, point de salut...

A+ blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Salut,

J'ai essayé de faire comme ca mais ca n'a pas marché. Ca n'a rien affiché ni la date ni l'heure ni seconde. J'ai mis le code javascript dans un fichier externe ensuite j'ai dans mon fichier php entre <marquee> et </marquee> j'ai mis ca:
<script type="text/javascript" src="date_heure.js">window.onload = date_heure('date_heure');</script>
Mais ca n'a pas marché
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
10 oct. 2014 à 10:20
J'ai essayé de faire comme ca mais ca n'a pas marché. Ca n'a rien affiché ni la date ni l'heure ni seconde.
Si ça ne marche pas, c'est que ton html n'est pas cohérent, peut-être que tu n'as pas mis le code au bon endroit...
0
En faite, le code j'ai mis dans un fichier php externe puisque j'utilise l'include... Le code j'ai essayé de le mettre à différentes endroits même dans un fichier html...
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
10 oct. 2014 à 15:55
stop !

- ton fichier date_heure.js existe-t-il ?
- ton fichier date_heure.js est-il bien placé sur le serveur au même endroit que la page qui l'appelle ?
- ton fichier date_heure.js contient quoi ?
0
- Bien sûr que ca existe
- Oui ils sont placés au même endroit sur le serveur
- Et j'ai pris le script donné sur le site support du web et c'est ca que contient mon fichier (Je voulais tester le script pour voir le fonctionnement avant de faire des changements mais ca n'a pas fonctionné.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 13/10/2014 à 11:46
Salut 1234,

Sur la base du code que tu postes , qui vient de l'adresse http://www.supportduweb.com/scripts_tutoriaux-code-source-10-afficher-l-039-heure-et-la-date-en-temps-reel.html tu peux insérer cela dans ton code PHP sous la forme de code Html et Javascript envoyé sur la page où tu veux faire apparaître ton "Marquee" :

<marquee behavior="scroll" scrollamount="5" direction="left" width="100%"
id="date_heure">
</marquee>

<script>
function date_heure(id)
{
        date = new Date;
        annee = date.getFullYear();
        moi = date.getMonth();
        mois = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
        j = date.getDate();
        jour = date.getDay();
        jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
        h = date.getHours();
        if(h<10)
        {
                h = "0"+h;
        }
        m = date.getMinutes();
        if(m<10)
        {
                m = "0"+m;
        }
        s = date.getSeconds();
        if(s<10)
        {
                s = "0"+s;
        }
        resultat = 'Nous sommes le '+jours[jour]+' '+j+' '+mois[moi]+' '+annee+' il est '+h+':'+m+':'+s;
        document.getElementById(id).innerHTML = resultat;
        setTimeout('date_heure("'+id+'");','1000');
        return true;
}
w i n d o w . o n l o a d = date_heure("date_heure");

< / s c r i p t >


(supprime les espaces additionnels entre les lettres des 2 dernières lignes, ils sont là car autrement le forum refuse ces deux lignes pour le protéger contre des injections de code).

C'est en général mieux de mettre le code Javascript dans un fichier séparé, pour optimiser le chargement, mais comme c'est court, tu fais comme tu le veux.

La fonction Javascript date_heure prend en paramètre "id", qui est utilisé avec document.getElementById(id).innerHTML pour insérer le résultat à l'emplacement identifié par l'id en question.

Tu dois donc seulement affecter un id à ta balise Marquee et appeler la fonction avec cet id (ce qui est fait une fois, au chargement de la page, avec w i n d o w . o n l o a d).

Vois :
http://www.w3schools.com/jsref/met_doc_getelementbyid.asp
https://www.w3schools.com/tags/att_global_id.asp
https://www.w3schools.com/jsref/prop_html_innerhtml.asp

La fonction date_heure s'appelle ensuite elle-même avec un setTimeout toutes les secondes.

https://www.w3schools.com/jsref/met_win_settimeout.asp

Le code serait plus propre, s'il utilisait setInterval(), qui est fait pour cela, et cela éviterait les appels récursifs.

https://www.w3schools.com/jsref/met_win_setinterval.asp


Dal
0
Salut,

Je viens d'essayer et effectivement cela marche et c'est exactement ce que je voulais. Merci.
Par contre, il y aurait une possibilité pour rajouter un texte du genre "Bonjour et bienvenue sur le site", juste avant la date?
J'ai essayé comme j'avais fais avant ca n'a pas marché. Il m'affiche juste la date J'ai essayé d'ajouter un echo mais ca n'a pas marché non plus.

Sinon, merci beaucoup pour tes explications. Je vais prendre connaissances des liens...

Merci d'avance,
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 14/10/2014 à 10:05
Salut 1234,

Il suffit de modifier la ligne 30 dans le code ci-dessus à l'intérieur de la fonction date_heure, en faisant précéder l'affectation de la variable "resultat" par ce que tu veux :

resultat = 'Bonjour et bienvenue sur le site. Nous sommes le (...)

Comme l'indique la documentation dont j'ai donné le lien, innerHTML permet de remplacer le contenu html d'un élément (ici, le contenu html de la balise marquee). Donc, c'est là que tu dois faire les changements que tu souhaites, pour insérer ce que tu veux dans ta balise marquee.


Dal
0
Salut,

Ah oui, c'est vrai, ca marche!

Merci beaucoup pour tes explications...
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 9/10/2014 à 18:16
c'est la date et l'heure du serveur que tu veux afficher, ou la date et l'heure locale du visiteur qui affiche ta page ?

accessoirement : tu n'as pas peur d'horripiler les gens avec un truc qui défile ? .. marquee, c'était à la mode dans les années 90 :-)
-2