11521 sujets

JavaScript, DOM et API Web HTML5

Bonsoir ou bonjour,

J'utilise ça pour récuperer la date et l'heure du visteur :

<script>
  function date_time(id)
{
        date = new Date;
        year = date.getFullYear();
        month = date.getMonth();
        months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'Jully', 'August', 'September', 'October', 'November', 'December');
        d = date.getDate();
        day = date.getDay();
        days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
        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;
        }
        result = ''+days[day]+' '+months[month]+' '+d+' '+year+' '+h+':'+m+':'+s;
        document.getElementById(id).innerHTML = result;
        setTimeout('date_time("'+id+'");','1000');
        return true;
}
  </script>



et ça pour l'afficher :

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


Ca m'affiche parfaitement la date et l'heure est actualisé chaque seconde.

Je voudrais faire la même chose en php

Voilà ce que j'utilise pour afficher la date e l'heure ne php
 <p id="server_time"><b>Server Time : </b> <?php echo date('l F j Y H:i:s'); ?></p>


Cordialement.
Le javascript présenté ici s'exécute côté client. Php c'est du code exécuté côté serveur, donc qui génère le html d'une page à l'appel de celle-ci, seul un rechargement de la page réactualise alors les données.

La bonne solution reste donc la première (ou alors il faut passer sous un autre environnement serveur qui n'a plus rien avoir avec php, comme Node.js, mais là c'est une autre histoire).
Modifié par Olivier C (18 Aug 2017 - 03:44)
Olivier C a écrit :
Le javascript présenté ici s'exécute côté client. Php c'est du code exécuté côté serveur, donc qui génère le html d'une page à l'appel de celle-ci, seul un rechargement de la page réactualise alors les données.

La bonne solution reste donc la première (ou alors il faut passer sous un autre environnement serveur qui n'a plus rien avoir avec php, comme Node.js, mais là c'est une autre histoire).


Merci à toi

Mais j'ai vu qu'en utilisant AJAX on pourrait actualiser le contenu d'un <div> ici j'utilise un <p> mais je pourrais aussi bien utiliser un <div>

Est-ce que ça marcherait?

Merci
Modérateur
Bonjour,

oui ça marcherait, aussi bien sur un p qu'une div.

Mais exécuter une requête sur le serveur toutes les secondes pour rafraichir une horloge ce n'est pas très cohérent: Les appels sont trop fréquents, et surtout pas instantanés:
entre 0.1s par appel (avec un bon serveur et une bonne connexion) jusqu'à deux-trois secondes, en sachant qu'un appel pourrait prendre 0.1 seconde et le suivant 2 secondes.

Du coup ton horloge aurait les secondes qui changeraient à intervalles étranges. De plus ça ralentirait la connexion du visiteur pour rien… javascript est le plus indiqué pour ce genre d'exercices. Par contre pense à utiliser setInterval au lieu de setTimeout ce sera plus robuste.
@kustolovic

Merci et c'est ce que je doutais de ne pas avoir une horloge fiable.

Est-ce que je pourrais mettre le php dans une autre fichier php et appeller ce fichier grâce à php?