web-dev-qa-db-fra.com

Conversion d'un horodatage UNIX en chaîne de date formatée

Avec PHP, je souhaite convertir les horodatages UNIX en chaînes de date similaires à ceci: 2008-07-17T09:24:17Z

Comment convertir un horodatage tel que 1333699439 en 2008-07-17T09:24:17Z?

170
Utku Dalmaz

Essayez gmdate comme ceci:

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

utiliser la fonction de date date ( string $format [, int $timestamp = time() ] )

Utilisez date('c',time()) comme format pour convertir la date ISO 8601 (ajoutée dans PHP 5) - 2012-04-06T12:45:47+05:30

utilisez date("Y-m-d\TH:i:s\Z",1333699439) pour obtenir 2012-04-06T13:33:59Z

Voici quelques-uns des formats pris en charge par la fonction de date

<?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
?>
108
Sandeep Manne

En supposant que vous utilisiez PHP 5.3, la manière moderne de gérer les dates est via le natif DateTime class . Pour obtenir l'heure actuelle, vous pouvez simplement appeler

$currentTime = new DateTime();

Pour créer un objet DateTime à partir d'un horodatage spécifique (c'est-à-dire pas maintenant)

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

Pour obtenir une chaîne formatée, vous pouvez alors appeler

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

Voir le page de manuel ici

50
liquorvicar

Il est très important de définir un fuseau horaire par défaut pour obtenir le résultat correct.

<?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);
?> 

Aide en ligne pour la conversion: http://freeonlinetools24.com/timestamp

14
klit67
<?php
$timestamp=1486830234542;
echo date('Y-m-d H:i:s', $timestamp/1000);
?>
7
sunil
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime);

Cela devrait fonctionner pour.

6
Linus Gudn Jokela

J'ai trouvé les informations dans cette conversation si utiles que je voulais juste ajouter comment je les ai trouvées en utilisant l'horodatage de ma base de données MySQL et un peu de PHP

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

Le résultat était: 2017-03-03T08: 22: 36 + 01: 00

Merci beaucoup Stewe vous répondiez était un eureka pour moi.

1
Samuel Ramzan