Newsgroup: it.comp.lang.javascript
Titolo: parametri di funzione

Salve, premesso che non ne capisco di javascript, avrei bisogno di modificare questo pezzo di codice in modo che 'now' venga valorizzato con il tempo attuale.
 
Mi date una mano? :-D i tratta di un plugin jquery per un countdown
 
<script type="text/javascript">
	$('.countdown').final_countdown({
	'start': 1362139200,
        'end': 1414799999,
        'now': 1387461319        
    });
</script>
 
 
Non c'entra niente con la domanda iniziale ma ho una curiosità... è meglio lasciare fare al browser la valorizzazione delle variabili oppure sarebbe meglio farle lato server? 
 
 
Grazie
debharlock
 

 meglio farle lato server?
 
Paisà, nun aggie capìte. 
 
--------------------
 
Ehi, salve a tutti! ^__-
 
-- 
mailto: y = i
------------------------------------------------------
http://www.catarsi.it
 
Vivo nel terrore di non essere frainteso (Oscar Wilde)

 Non c'entra niente con la domanda iniziale ma ho una curiosità... è meglio lasciare fare al browser la valorizzazione delle variabili oppure sarebbe meglio farle lato server? 
 
Ottieni due effetti diversi, quindi dipende da quel che vuoi ottenere:
farla lato client, vuol dire che ti prende il tempo del client; quindi
avrai un valore diverso a Roma o San Francisco, per intenderci, per via
della time zone, dipende il client da dove si connette. Se invece la fai
lato server, prenderai il tempo del server, a prescindere da dove si
connette il client. C'è inoltre da considerare i tempi di attesa:
facendolo fare al client, il il tempo verrà preso nel momento esatto in
cui la pagina sarà disponibile al client; mentre facendolo fare al
server, il tempo verrà preso prima che la pagina venga ricevuta dal
client, e in caso di connessioni lente o pagine pesanti, potrebbe essere
un valore significativo.
C'è anche un discorso di "sicurezza", sebbene non credo sia questo il
caso: se vuoi ad esempio fare un quiz a tempo, e dare un punteggio in
base a quanto ci mette l'utente fornire la risposta, è bene se il tempo
lo prendi sul server, giacché il dato che il client ti invia potrebbe
essere facilmente manomesso.
 
Come vedi, dipende da caso a caso.

 a prescindere da dove si connette il client. 
 
cut
 
Rinuncio a farlo lato client. Si tratta di un paio di pagine HTML e, al momento,  mi bastano gli esercizi in JS ;)
 
 
Grazie
debharlock

 debharlock
 
Prego
 

 mancano 60 minuti anche se è l'1:00.
 
La gestione delle timezone è il motivo per cui il preferirei avere 
qualcosa tipo lo Swatch Time. :P
 
Comunque, dipende da caso a caso. Per fare le cose fatte bene ti conviene 
salvare sul server sempre le date in GMT/UTC, senza fusi orari e senza 
DST. Da lì poi è facile convertirle.
Se hai Linux e PHP sul server, per esempio, ti basta usare gmdate('Y-m-d 
H:i:s') per avere la data corrente in UTC.
 
Per il Natale, come dice ZER0, puoi prenderla dal client o, se il server 
sa la timezone dell'utente (per esempio perché è loggato e l'ha impostata, 
o perché l'ha presa da Javascript via AJAX), anche calcolarla lì.
 
Per informazioni tipo gli appuntamenti, puoi trasmettere sempre i dati in 
UTC e convertirli lato client, con new Date().getTimezoneOffset(), (o 
comunque al momento della visualizzazione) nella timezone locale.
 
Naturalmente questo significa che ad ogni input dell'utente devi 
convertire la data che ti mette lui in UTC prima di salvarla sul server, 
e questo può essere complicato. Per esempio se il 15 settembre stai 
salvando un appuntamento per il 15 dicembre, il client ti dirà che c'è 
l'ora legale, ma tu lo devi salvare con l'ora solare.
 
Per PHP c'è un intero manuale che spiega solo come gestire date e ore con 
timezone e DST: 
 
http://www.phparch.com/books/phparchitects-guide-to-date-and-time-
 
programming/
 
 
Bye.

 
 
Il problema non è Natale.... quello sarà sempre alla stessa ora per tutti indipendentemente dal fuso orario.
 
Provo a spiegarmi meglio...
 
 - Il volo AZ1234 parte da Milano alle 23:00
 - Io mi collego alle 13:00 dall'Italia e avrò (23:00 - 13:00) un 10 ore
 - Nello stesso momento tu ti colleghi da Londra. Per te saranno le 12:00 quindi avrai (12:00 -23:00) 11 ore; questo è sbagliato in quanto anche per te mancano 10 ore
 
Come dice Pellizzari sotto dovrei salvare l'orario del volo in UTC (22:00UTC) a quel punto
 
 - per me sarebbe 22:00 - 13:00 +1:00 (10H)
 - per te sarebbe 22:00 - 12:00 +0:00 (10H)
 
 
Dovrei farlo con JS buona fortuna
 
Grazie
debharlock

 
 
devo cercarmi qualcosa di simile per JS
 
 
Grazie
debharlock

 devo cercarmi qualcosa di simile per JS
 
La teoria dietro è la stessa, e troverai centinaia di blog che parlano di 
come risolvere il problema in tutti i linguaggi del mondo.
 
O meglio, come cercare di minimizzarlo, visto che nemmeno Google Calendar 
lo gestisce in manera decente... :)
 
Bye.

 Dovrei farlo con JS buona fortuna
 
Se vuoi accedere alla data del client, devi usare JS per forza. Puoi
inviare tale data al server, eventualmente, ma senza JS non puoi fare
niente in tal senso.
 

 
 
Qua non ho capito invece 
 
 
grazie 
debharkock

 Qua non ho capito invece 
 
Partiamo dalla fine, in due esempi.
a) Una pagina che, quando la apri, ti dice quanto manca a Natale.
b) Una pagina che, quando la apri, ti mostra dei voli, e quanto manca
alla loro partenza.
 
Nell'esempio "a", l'evento si verifica sempre alla stessa data a
*prescindere* dal luogo: ovvero alla mezzanotte del 25 Dicembre. Che sia
di Roma, o San Francisco.
Questo significa che l'evento è legato alla timezone di chi apre la
pagina: se apro la pagina a Roma, il calcolo deve essere fatto in base
al fuso orario di Roma. Se la apro da San Francisco, deve essere fatto
col fuso orario di San Francisco.
In pratica, l'evento si verifica in *momenti* differenti, perché la data
è *relativa* (alla zona in cui siamo) e non *assoluta*.
In soldoni, le ore che mancano a Natale sono diverse in base al dove
sono nel mondo quando apro la pagina.
 
E fin qui, ci siamo capiti.
 
Nell'esempio "b" invece, l'evento si verifica in un *momento* ben
specifico. L'aereo parte da Milano alle 23:00. L'aereo, a differenza di
Natale, partirà in quello *specifico* momento, a prescindere che io apra
la pagina da Roma, Londra, o San Francisco.
Questo significa che le ore che mancano alla partenza, sono le stesse a
*prescindere* da dove apro la pagina.
Ma se sono le stesse a prescindere da dove apro la pagina, non vuol dire
allora che il mio luogo, cioè il client, è irrilevante nell'equazione?
 
Se quando apro la pagina, voglio mostrare quante ore mancano alla
partenza, basta il server: in pratica il server prenderà l'ora corrente
usando il fuso orario dell'evento (in quel caso, Milano), e calcolerà la
differenza tra i due. In questo modo, che io apra la pagina da Roma,
Londra o San Francisco, è irrilevante. Il client non entra in gioco.
Quel che conta è solo la differenza tra ora e il momento della partenza,
dove "ora" e il "momento della partenza" usano il medesimo fuso orario.
 
Spero sia piú chiaro.
Ovviamente sto discutendo degli esempi proposti, se uno volesse fare
un'applicazione di Calendario le cose sarebbero molto piú complesse.