Affichage date/heure en temps réel [Fermé]

Signaler
-
 1234 -
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
Bonsoir

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

Merci,
Messages postés
23913
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 714
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"
- 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é.
[Dal]
Messages postés
5377
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
23 janvier 2020
849
peux-tu répondre, stp aux question que l'on te pose : ton fichier date_heure.js contient quoi ?

poste son code, ou un lien vers ce fichier, si ce fichier est accessible en ligne.
Je pensais l'avoir fait
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;
}


Je donne quand même le lien vers le site:
http://www.supportduweb.com/scripts_tutoriaux-code-source-10-afficher-l-039-heure-et-la-date-en-temps-reel.html
blux
Messages postés
23913
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 714
et maintenant, donne le source de la page qui appelle ce script...
J'ai mis ce code dans un fichier .php:

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

<script type="text/javascript" src="date_heure.js">window.onload = date_heure('date_heure');</script>

</marquee>


J'utilise en faite la fonction include pour la partie "presentation" et cette code se trouve sur la partie presentation.
Messages postés
5377
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
23 janvier 2020
849
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
http://www.w3schools.com/tags/att_global_id.asp
http://www.w3schools.com/jsref/prop_html_innerhtml.asp

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

http://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.

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


Dal
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,
[Dal]
Messages postés
5377
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
23 janvier 2020
849
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
Salut,

Ah oui, c'est vrai, ca marche!

Merci beaucoup pour tes explications...
Messages postés
5377
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
23 janvier 2020
849
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 :-)