Può stampare meno cifre, perché è un valore float. Quindi se ottieni 1234.0005
, che `.0005 in realtà significa 500 microsecondi. Gli zeri dopo il 5 sono persi perché è ancora un valore float non formattato.
La funzione microtime
si basa sulla chiamata di sistema gettimeofday()
, che non è precisa al microsecondo. Comunemente è accurato fino a 10 microsecondi. Vedi anche Linux - Is gettimeofday() guaranteed to be of microsecond resolution.
-edit- Vedo che le specifiche sono passate da microsecondi a millisecondi.
Per ottenere il valore float come numero intero, è possibile moltiplicare per un valore. Il valore float rappresenta i secondi. Moltiplicare per 1000 per ottenere millisecondi o 1.000.000 per ottenere microsecondi. Dato che le specifiche (ora) dicono millisecondi, dovresti moltiplicare per 1000. 10k ti darà una precisione di 1/10ms = 100μs. Un millisecondo è un millesimo di secondo. Un microsecondo è un milionesimo di secondo.
Per farla breve, per ottenere il tempo in millisecondi interi, utilizzare questo:
$milliseconds = round(microtime(true) * 1000);
Nota: c'è un motivo per cui si ottiene il tempo come una stringa o di un galleggiante per impostazione predefinita. Il motivo è che su sistemi a 32 bit, il numero intero di PHP è anch'esso di 32 bit e non è abbastanza grande da contenere il timestamp inclusi millisecondi e microsecondi. Quindi questa soluzione funzionerà bene solo su un sistema a 64 bit.
avete bisogno il timestamp in millisecondi o in microsecondi? il titolo dice una cosa e la domanda reale un altro –
è un problema di arrotondamento. Gli zeri finali non vengono echeggiati, 'str_pad (str_replace (". "," ", Microtime (true)), 14, 0)' – splash58
@AlexAndrei: scusa ho bisogno in milli secondi – Vishnu