Converter carimbo de data / hora em data / hora legível PHP

227

Eu tenho um carimbo de data / hora armazenado em uma sessão (1299446702).

Como posso converter isso para uma data / hora legível em PHP? Eu tentei srttotime, etc. sem sucesso.

Adamski
fonte

Respostas:

396

Use a date()função do PHP .

Exemplo:

echo date('m/d/Y', 1299446702);
Foguete Hazmat
fonte
1
Você pode acessar epochconvert.com/programming/php para epoch ou timestamp para data legível por humanos usando PHP.
Laeeq
84

strtotime transforma uma string de data em um carimbo de data / hora. Você quer fazer o oposto, que é a data . O formato típico da data do mysql é date('Y-m-d H:i:s'); Verifique a página do manual para saber o que as outras letras representam.

Se você tem um registro de data e hora que deseja usar (aparentemente você usa), esse é o segundo argumento de date().

Comprimidos de explosão
fonte
4
seria bom notar que passei em minha data atual da seguinte forma:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo
existe um comando para converter um carimbo de data / hora em sua padronização de data e hora, porque eu converti um data e hora em um carimbo de data e hora unix, mas no meu banco de dados ainda é um horário de data em que tentarei isso, mas ainda acho estranho que não exista um comando específico para ele
Marc Roelse 15/01
64

Acabei de adicionar H: i: s à resposta de Rocket para obter o tempo e a data.

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

Saída: 03/06/2011 16:25:02

Razan Paul
fonte
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);

resultado: 2016-06-07 14:29:00

Outros fusos horários:

Stanislav Malomuzh
fonte
23

Se você estiver usando PHP date(), poderá usar esse código para obter a data, hora, segundo 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
fonte
12
Que tal ano bissexto e segundo ...?
Petteri Hietavirta 26/01
$year = date('Y', $time)
Ruben Kazumov 29/10
16

Eu sei que é uma pergunta antiga, mas é alta nos resultados da pesquisa.

Se alguém quiser a conversão de carimbo de data e hora diretamente em um objeto DateTime, existe uma linha simples:

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

Após o comentário @sromero, o parâmetro fuso horário (o terceiro parâmetro em DateTime :: createFromFormat ()) é ignorado quando o carimbo de data / hora unix é passado, portanto, o código abaixo é desnecessário.

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

Você pode verificar o manual do PHP em DateTime :: createFromFormat para obter mais informações e opções.

Pascal
fonte
1
Faça um comentário sobre sua última linha de código: de acordo com a página do manual que você vincula: "Nota: O parâmetro fuso horário e o fuso horário atual são ignorados quando o parâmetro time contém um registro de data e hora UNIX (por exemplo, 946684800) ou especifica um fuso horário (por exemplo, 2010 -01-28T15: 00: 00 + 02: 00). "
sromero
@romero Você tem razão. O parâmetro fuso horário é ignorado neste caso.
Pascal
14

Tente.

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

Você pode tentar isso:

   $mytimestamp = 1465298940;

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

Resultado :

06-06-2016

Pratik Mehta
fonte
8

A menos que você precise de um formato de data e hora personalizado, é mais fácil, menos propenso a erros e mais legível usar uma das constantes de formato de data e hora incorporadas :

echo date(DATE_RFC822, 1368496604);
bispo
fonte
2
Essa deve ser a resposta principal.
alexg
6

Tente este:

echo date('m/d/Y H:i:s', 1541843467);
Sunni Ha
fonte
1
Olá! Parece que esta resposta já foi proposta; veja a resposta superior.
hat
4

echo date("l M j, Y",$res1['timep']);
Isso é realmente bom para converter um registro de data e hora unix em uma data legível junto com o dia. Exemplo: quinta-feira 7 de julho de 2016

Harry Singh
fonte
1
Respostas semelhantes já foram postadas. Qual é a vantagem das informações em sua resposta?
Steffen Harbich 07/07
4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);
Ouane vermelho
fonte
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

Nos exemplos acima, "r" e "Ymd H: i: s" são formatos de data PHP, outros exemplos:

Formatar Saída

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
fonte