2012-04-06 14 views

risposta

234

Prova questa:

<?php 
$timestamp=1333699439; 
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp); 
?> 
+25

Si prega di notare che 'gmdate()' restituisce la data/ora in GMT. 'date()' restituirà la data/ora locale. –

+4

Sopra il commento non ha senso in questo contesto. L'utilizzo della data con il secondo parametro come timestamp, come mostrato nella risposta, non stamperà la data nel fuso orario locale. La data verrà stampata con informazioni sul fuso orario ignorate, in quanto il timestamp non ha informazioni sul fuso orario. gmdate e data con il secondo parametro timestamp come 1333699439 stamperanno la stessa data. –

+0

@MattK: il che ha senso poiché Z indica UTC. Tinus: I timestamp Unix non contengono offset del fuso orario. 'date' e l'output di' gmdate' differirà in base alla variabile TZ (almeno su * nix) –

92

funzione di data uso date (string $format [, int $timestamp = time() ])

Usa date('c',time()) come formato da convertire in ISO 8601 data (aggiunto in PHP 5) - 2012-04-06T12:45:47+05:30

uso date("Y-m-d\TH:i:s\Z",1333699439) per ottenere 2012-04-06T13:33:59Z

Ecco alcuni dei data formati supporta la funzione

<?php 
$today = date("F j, Y, g:i a");     // March 10, 2001, 5:16 pm 
$today = date("m.d.y");       // 03.10.01 
$today = date("j, n, Y");      // 10, 3, 2001 
$today = date("Ymd");       // 20010310 
$today = date('h-i-s, j-m-y, it is w Day');  // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. 
$today = date("D M j G:i:s T Y");    // Sat Mar 10 17:16:18 MST 2001 
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');  // 17:03:18 m is month 
$today = date("H:i:s");       // 17:16:18 
?> 
+0

Come posso convertire un timestamp specifico con "c"? per esempio 1333699439 –

+1

data ('c', 1333699439) –

+0

questo ha risolto il tuo problema? –

38

Presumendovi un usando PHP5.3 quindi il modo moderno di gestire le date è tramite il codice nativo DateTime class. Per ottenere il tempo corrente si può chiamare

$currentTime = new DateTime(); 

Per creare un oggetto DateTime da un timestamp specifico (cioè non ora)

$currentTime = DateTime::createFromFormat('U', $timestamp); 

Per ottenere una stringa formattata si può quindi chiamare

$formattedString = $currentTime->format('c'); 

Vedi l'manual page here

+1

come posso convertire un timestamp specifico con questo? per esempio 1333699439 –

+0

@Norse Ovviamente ho letto il suo post. Tutte le informazioni di cui aveva bisogno erano nel mio post. Tutto quello che doveva fare era leggere i documenti PHP per l'oggetto DateTime. Ho modificato il mio post per renderlo ancora più chiaro. L'oggetto DateTime è la strada da percorrere in PHP e tutti i neofiti dovrebbero essere incoraggiati a usarlo. Al momento, sono l'unico a cui ho fornito questa risposta. A proposito, trovo il tuo commento un po 'aggressivo e non proprio nello spirito di SO. – liquorvicar

+0

@Ahmetvardar Vedi la mia modifica, sebbene tutto questo sia nei documenti PHP a cui ho fornito un collegamento. Ti esorto vivamente a iniziare a utilizzare l'oggetto DateTime. Fornisce un eccellente supporto per date/orari inclusi timezone ecc. – liquorvicar

5
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime); 

Questo dovrebbe funzionare a.

11

E 'molto importante per impostare un fuso orario predefinito per ottenere il risultato corretto

<?php 
// set default timezone 
date_default_timezone_set('Europe/Berlin'); 

// timestamp 
$timestamp = 1307595105; 

// output 
echo date('d M Y H:i:s Z',$timestamp); 
echo date('c',$timestamp); 
?> 

aiuto di conversione online: http://freeonlinetools24.com/timestamp

+1

In ISO8601, 'Z' è usato per indicare che è un tempo UTC, quindi il fuso orario deve essere impostato su' UTC' –

1
<?php 
$timestamp=1486830234542; 
echo date('Y-m-d H:i:s', $timestamp/1000); 
?> 
0

ho trovato le informazioni in questa conversazione così utile che volevo solo aggiungere quanto ho capito, utilizzando il timestamp dal mio database MySQL e un po 'di PHP

<?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?> 

L'uscita era: 2017-03-03T08: 22: 36 + 01: 00

Grazie mille Stewe che hai risposto è stato un eureka per me.