2010-08-13 9 views
5

Nella maggior parte dei linguaggi di programmazione o scripting come PHP o JavaScript, ho trovato la funzione temporale che tende a calcolare il tempo dall'anno 1970. per esempio in javascript se uso la funzione getTime() o in PHP il tempo() restituisce un valore intero.perché dobbiamo calcolare il tempo dall'anno 1970?

In PHP.

il codice con <?php echo time(); ?> restituisce un valore intero di 1281694425, , cosa spiega il valore restituito dal PHP? come e quando è utile?

lo stesso in javascript il getTime() restituisce il valore float dal 1970 come si dice. utilizzando lo script seguente in JS

<script type="text/javascript"> 
var d=new Date(); 
document.write(d.getTime() + " milliseconds since 1970/01/01"); 
</script> 

Voglio sapere quando è utile utilizzare questo tipo di funzioni? e come lo usiamo?

P.S: è utile per calcolare l'intervallo di tempo? o viene utilizzato per memorizzare l'ora corrente?

+1

Qual è la tua domanda? Perché vengono usati i tempi d'epoca o come usarli? – Oded

+0

entrambi. Voglio dire quando è utile la funzione (es: ora legale, ecc.). e come lo usiamo se restituisce il valore in millisecondi? –

risposta

7

Ti danno i secondi che passavano dal 1 ° gennaio 1970. Ciò è utile anteriori diverse ragioni:

  1. Ordinamento date è semplice come l'ordinamento interi.
  2. È facile ottenere la durata di un intervallo, semplice fare t1-t2 e si ottiene di nuovo la differenza in secondi.
  3. Non è necessario gestire formati di data diversi (come MM/GG/AA o GG/AA/MM): ogni linguaggio di programmazione e ogni database supporta numeri interi.
+0

quindi in pratica si intende dire che viene utilizzato per memorizzare la differenza di orario o l'intervallo di tempo e non il timestamp corrente? –

+1

Piuttosto, un timestamp è un intervallo tra un punto di riferimento e un altro tempo. Ad esempio, l'anno 2010 è duemila e dieci anni dopo un evento notevole. d.getTime() restituisce il numero di millisecondi dopo il 1970/01/01. 1281694425 * è * un timestamp. – Douglas

+0

Una cosa da notare - tali timestamp rappresentano un ** istante di tempo **. Questo è facilmente confuso quando devi fare calcoli a livello di data. Mentre è apparentemente facile usare un tale timestamp per memorizzare una data (basta impostare l'orologio alle 00:00), diventa rapidamente imbarazzante quando vengono introdotti i fusi orari e/o alcuni valori che partecipano ai calcoli non sono alle 00:00. Pertanto, se hai bisogno di archiviare e lavorare con le date, ti consiglio un tipo di dati diverso (o MOLTO prudente). –

1

Significa che se si ricalcola l'ora dal numero intero in un altro fuso orario si otterrà l'ora corretta per qualsiasi fuso orario lo acceda. Credo :-)

+0

intendi dire che è utile durante il calcolo degli intervalli di tempo? o può essere usato anche per memorizzare l'ora? –

+0

Sì, è possibile utilizzarlo come timestamp. – Dom