Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [js] clock con data server php

    Stavo pensando di riadattare lo script del clock scaricato da
    http://www.devpro.it/javascript_id_56.html (versione originale commentata è qui)
    realizzato dall'utente andr3a, e di implementare la data e ora del server.
    In Js non conosco quasi niente, ad eccezione del fatto che scripto in AS per Flash.
    Comunque ecco come stavo modificando lo script:

    Codice
    codice:
    <script type="text/javascript" src="js/Object.clock.js"></script>
    <script type="text/javascript">
    <!--//
    window.onload=function(){
    
    var currenttime = '<?php echo date( "F d, Y H:i:s", time() )?>';
    var mc = new clock( 'myClock', currenttime );
    mc.show(); 
    // [...] altre cose onload
    
    }
    //-->
    </script>
    Funzione inclusa Object.clock.js
    codice:
    var clock = function( id, currenttime ) {
    	function setDays( ar ) {
    		Days = ar;
    	}
    	function setMonths( ar ) {
    		Months = ar;
    	}
    	function show() {
    		var clock = __getClock();
    		document.getElementById( id ).innerHTML = clock;
    		if( __int__ == 0 ) {
    			__int__ = setInterval( show, 1000 );
    		}
    	}
    	function __under10( v ) {
    		return v < 10 ? '0' + v : v;
    	}
    	function __getClock() {
    		var serverDate = new Date( currenttime );
    		serverDate.setSeconds( serverDate.getSeconds()+1 );
    		var DD = __under10( serverDate.getDate() );
    		var HH = __under10( serverDate.getHours() );
    		var II = __under10( serverDate.getMinutes() );
    		var ss = __under10( serverDate.getSeconds() );
    		return Days[serverDate.getDay()] + ', ' + DD + ' ' + Months[serverDate.getMonth()] + ' ' + serverDate.getFullYear() + ' - ' + HH + ':' + II + ':' + ss;
    	}
    	var Days = Array( 'Domenica', 'Luned&igrave;', 'Marted&igrave;', 'Mercoled&igrave;', 'Gioved&igrave;', 'Venerd&igrave;', 'Sabato' );
    	var Months = Array( 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' );
    	var __int__ = 0;
    	this.show = show;
    	this.setDays = setDays;
    	this.setMonths = setMonths;
    }
    La funzione funziona per quello che gli dico di fare: ossia ritorna la data e l'ora del server, ma non funziona (ovviamente) il refresh... ossia la data e ora stampate a video sono sempre le stesse... come si può fare per ovviare?

    Grazie in anticipo e grazie ad andr3a
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: [js] clock con data server php

    ho capito cos'è che andrebbe fatto ma non so come si fa...

    il php scrive nel codice la var currenttime,
    il javacript legge quella variabile e aumenta di uno

    dovrebbe fare controlli su tutti i campi (ora, min, sec, giorno, ecc.)
    e poi dovrebbe, credo, fisicamente scrivere nell'html i secondi che cambiano (se questo non rende pesante l'esecuzione della pagina) oppure tenere in memoria in qualche modo l'incremento (prima +1sec, poi +2, +3 ecc.)
    わさび

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: Re: [js] clock con data server php

    up
    わさび

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Piccolo esempio:
    codice:
    <HTML>
    <HEAD>
    <TITLE> &copy; br1 - 2006 </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var DateServer = new Date(2007,01,12,13,16,50); // i valori sono scritti dal server; nota: il mese va da 0 a 11
    var timer = setInterval("clock()",1000);
    function clock() {
    	DateServer.setSeconds(1+DateServer.getSeconds())
    	document.getElementById("orologio").value = DateServer.toLocaleString();
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <input type="text" id="orologio" size="35">
    </BODY>
    </HTML>
    Adattalo alle tue esigenze.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    grazie infinite br1
    se a qualcuno può servire ho modificato lo script così e funziona:

    Codice PHP:
    <?php
    $sdate 
    date'Y,m,d,H,i,s'time() );
    echo <<<END
    <script type="text/javascript">
    <!--//
    var DateServer = new Date(
    {$sdate});
    DateServer.setMonth(DateServer.getMonth()-1);
    var timer = setInterval("clock()",1000);
    function clock() {
        DateServer.setSeconds(1+DateServer.getSeconds());
        document.getElementById( 'myClock' ).innerHTML = DateServer.toLocaleString();
    }
    //-->
    </script>
    END;
    ?>
    わさび

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    C'è un problemino:
    il codice sopra sembrava funzionare perfettamente... ma l'avevo testato solo su IE/Firefox sotto Windows.

    Ora l'ho testato sotto FF di Linux e in output escono altri valori... non so... forse può dipendere dal fatto che la località del Linux che ho installato non è italiana?
    Io dovrei invece garantire l'output dei giorni della settimana, dei mesi ecc. sia sempre lo stesso... quindi l'array iniziale andrebbe al caso mio, ma come posso modificare la funzione in modo che funzioni?

    ecco quello che esce in output dal php:
    codice:
    <script type="text/javascript">
    <!--//
    var DateServer = new Date(2007,02,14,21,52,44);
    DateServer.setMonth(DateServer.getMonth()-1);
    var timer = setInterval("clock()",1000);
    function clock() {
    	DateServer.setSeconds(1+DateServer.getSeconds());
    	document.getElementById( 'myClock' ).innerHTML = DateServer.toLocaleString();
    }......
    ed ecco quello che leggo sotto linux:
    codice:
    mer 14 feb 21:52:44 CET
    a proposito, che roba è CET?
    わさび

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se vuoi formattare diversamente l'output c'e' un mio vecchissimo codice...

    http://javascript.html.it/demo/javas...44/esempio.htm

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da br1
    Se vuoi formattare diversamente l'output c'e' un mio vecchissimo codice...

    http://javascript.html.it/demo/javas...44/esempio.htm

    ciao
    grazie ancora, vado a vedere
    わさび

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.