Conversion d'horodatage en date / heure lisible PHP

227

J'ai un horodatage stocké dans une session (1299446702).

Comment puis-je convertir cela en une date / heure lisible en PHP? J'ai essayé srttotime, etc. en vain.

Adamski
la source

Réponses:

396

Utilisez la date()fonction de PHP .

Exemple:

echo date('m/d/Y', 1299446702);
Rocket Hazmat
la source
1
Vous pouvez accéder à epochconvert.com/programming/php pour l'époque ou l'horodatage à une date lisible par l'homme en utilisant PHP.
Laeeq
84

strtotime transforme une chaîne de date en horodatage. Vous voulez faire l'inverse, qui est la date . Le format de date mysql typique est date('Y-m-d H:i:s'); Consultez la page de manuel pour voir ce que les autres lettres représentent.

Si vous avez un horodatage que vous souhaitez utiliser (apparemment vous l'avez), c'est le deuxième argument de date().

Pilules d'explosion
la source
4
il serait bon de noter que j'ai passé ma date actuelle comme suit:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo
n'y a-t-il pas de commande pour convertir un horodatage en leur standardisation datetime parce que j'ai converti un datetime en horodatage unix mais dans ma base de données c'est toujours un datetime je vais essayer cela mais je trouve toujours bizarre qu'il n'y ait pas de commande spécifique pour cela
Marc Roelse
64

Je viens d'ajouter H: i: s à la réponse de Rocket pour obtenir l'heure et la date.

echo date('m/d/Y H:i:s', 1299446702);

Sortie: 03/06/2011 16:25:02

Razan Paul
la source
49
$timestamp = 1465298940;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();
// If you must have use time zones
// $date = new \DateTime('now', new \DateTimeZone('Europe/Helsinki'));
$date->setTimestamp($timestamp);
echo $date->format($datetimeFormat);

résultat: 2016-06-07 14:29:00

Autres fuseaux horaires:

Stanislav Malomuzh
la source
23

Si vous utilisez PHP date(), vous pouvez utiliser ce code pour obtenir la date, l'heure, la seconde, etc.

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds
Rahul Dadhich
la source
12
Qu'en est-il de l'année bissextile et de la seconde ...?
Petteri Hietavirta
$year = date('Y', $time)
Ruben Kazumov
16

Je sais que c'est une vieille question, mais son haut dans les résultats de recherche.

Si quelqu'un veut une conversion d'horodatage directement en un objet DateTime, il existe une simple ligne:

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

Après le commentaire de @sromero, le paramètre de fuseau horaire (le 3ème paramètre dans DateTime :: createFromFormat ()) est ignoré lorsque l'horodatage Unix est passé, donc le code ci-dessous n'est pas nécessaire.

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

Vous pouvez consulter le manuel de PHP pour DateTime :: createFromFormat pour plus d'informations et d'options.

Pascal
la source
1
Jus un commentaire sur votre dernière ligne de code: selon la page de manuel que vous liez: "Remarque: Le paramètre de fuseau horaire et le fuseau horaire actuel sont ignorés lorsque le paramètre de temps contient soit un horodatage UNIX (par exemple 946684800) ou spécifie un fuseau horaire (par exemple 2010 -01-28T15: 00: 00 + 02: 00). "
sromero
@sromero Vous avez raison. Le paramètre de fuseau horaire est ignoré dans ce cas.
Pascal
14

Essayez-le.

<?php
 $timestamp=1333342365;
 echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
 ?>
Neil Dhakal
la source
8

Vous pouvez essayer ceci:

   $mytimestamp = 1465298940;

   echo gmdate("m-d-Y", $mytimestamp);

Production :

06-07-2016

Pratik Mehta
la source
8

À moins que vous n'ayez besoin d'un format de date et d'heure personnalisé, il est plus facile, moins sujet aux erreurs et plus lisible d'utiliser l'une des constantes de format d'heure de date intégrées :

echo date(DATE_RFC822, 1368496604);
évêque
la source
2
Cela devrait être la meilleure réponse.
alexg
6

Essaye celui-là:

echo date('m/d/Y H:i:s', 1541843467);
Sunni Ha
la source
1
Salut! Il semble que cette réponse ait déjà été proposée; voir la meilleure réponse.
chapeau
4

echo date("l M j, Y",$res1['timep']);
C'est vraiment bon pour convertir un horodatage Unix en une date lisible avec le jour. Exemple: jeudi 7 juil.2016

Harry Singh
la source
1
Des réponses similaires sont déjà publiées, quel est le plus d'informations dans votre réponse?
Steffen Harbich
4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);
Ouane rouge
la source
4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

Dans les exemples ci-dessus, "r" et "Ymd H: i: s" sont des formats de date PHP, d'autres exemples:

Format de sortie

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
SM Imtiaz Hussain
la source