Newsgroup: it.comp.lang.javascript
Titolo: date server

Vorrei mettere nell'homepage un orologio con la data ed ora del server
aggiornandola continuamente (mi bastera` ogni minuto), per cui, credo ma
me ne intendo veramente poco..., che occorra usare anche PHP.
 
Prendendo spunto da questo esempio di orologio lato client, in
javascript,:
 
http://www.elated.com/articles/creating-a-javascript-clock/
 
 
ho provato a fare uno script che richiama la data del server tramite PHP:
 
<html>
<head>
<script type="text/javascript">
<!-- 
function updateClock()
{
 var currentTimeString = "<?php echo date('l jS \of F Y h:i:s A'); ?>"
 document.getElementById("clock").firstChild.nodeValue = currentTimeString;
}
-->
</script>
</head>
<body onload="updateClock(); setInterval('updateClock()', 1000 )">
 <span id="clock">&nbsp;</span>
</body>
</html>
 
ma stampa la data ma poi non si aggiorna.
 
Potete darmi un aiuto per risolvere per favore?
 
Ho provato a togliere dal body
onload="updateClock(); setInterval('updateClock()', 1000 )"
e ad aggiungere nello script:
 
window.onload=function(){
  setInterval("updateClock()", 1000)
}
 
ma purtroppo anche cosi` nulla e` cambiato.
 

 me ne intendo veramente poco..., che occorra usare anche PHP.
 
Hai (almeno) due possibilità.
 
Quella semplice è espandere un po' quello che hai, ma invece di 
visualizzare subito l'orario, usarlo lato Javascript per calcolare la 
differenza di data e ora tra il server e il client, quindi usare le 
funzioni js per le date per continuare a mostrarlo aggiornato. Così puoi 
aggiornarlo anche ogni secondo, volendo.
 
La seconda è di fare chiamate AJAX periodiche al server per avere la 
data. Ma ne vale la pena?
 
Bye.
 
 

Scriveva M_M venerdì, 29/04/2016:

Ehh, ti tocca interrogare sempre il server per avere la data.
Chiamate ajax.
 
Bye
 
-- 
Alex
 
--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---

 data. Ma ne vale la pena?
 
Non lo so ma io di te mi fido e quindi evito. :-)
Provero` ad adottare un'altra strategia cioe` convertire, con
javascript, l'ora effettiva del client in quella corrispondente di Roma.
Forse e` piu` facile; mi serve solo perche` se qualche straniero mi
vuole contattare, possa rendersi subito conto di che ora e` qui da me.
 
Ciao e grazie.
 
 

 javascript, l'ora effettiva del client in quella corrispondente di Roma.
 
mah! scopiazzando qua e la`, come al mio solito, forse ci sono riuscito,
ma bisognerebbe essere all'estero per verificare del tutto ... :-/
 
Poi c'e` ancora il discorso dell'ora solare / ora legale, che non mi
ricordo mai quando cadono, ma adesso sono stanco e per ora, se
funzionasse veramente, andrebbe gia` bene cosi`.
 
<html>
  <head>
    <script type="text/javascript">
      <!-- 
      function updateClock() {
       var d = new Date();
       utc = d.getTime() + (d.getTimezoneOffset() * 60000);
       nd = new Date(utc + (3600000*2));
       currentRomeTime = nd.toLocaleString();
       document.getElementById("clock").firstChild.nodeValue = currentRomeTime;


 funzionasse veramente, andrebbe gia` bene cosi`.
 
Ieri avevo sottovalutato la cosa perche` non ricordavo che i cambi
semestrali non avvengono sempre negli stessi giorni ma l'ultima domenica
di Marzo e di Ottobre.
Probabilmente qualcuno avra` gia` affrontato il problema per javascript
ma io in rete non sono riuscito a trovare nulla in merito, per cui ho
pensato di risolvere la cosa utilizzando nuovamente un pizzico di PHP,
visto che il server sa se siamo un'ora o due avanti.
 
Questo e` il risultato, verificabile salvando il file con estensione php
e mettendolo su un server:
 
<html>
<head>
<script type="text/javascript">
<!-- 
function checkGMT() {
   currentGMT = "<?php echo date('O'); ?>"
   if (currentGMT = "+0200") {
     n = 2
   } 
   else { 
     n = 1
   }
}
--> 
</script>
<script type="text/javascript">
<!-- 
function updateClock() {
   var d = new Date();
   utc = d.getTime() + (d.getTimezoneOffset() * 60000);
   nd = new Date(utc + (3600000 * n));
   currentRomeTime = nd.toLocaleString();
   document.getElementById("clock").firstChild.nodeValue = currentRomeTime;
}
-->
</script>
</head>
<body onload="checkGMT(); updateClock(); setInterval('updateClock()', 1000 )">


 ma io in rete non sono riuscito a trovare nulla in merito, [CUT]
 
Ho trovato ora un bello script che fa al caso mio:
 
http://www.smarttutorials.net/live-server-time-clock-using-php-and-javascript/
 
 
--
"Talk is cheap, show me the code."
(Linus Torvalds)