Ubah stempel waktu menjadi PHP tanggal / waktu yang dapat dibaca

227

Saya memiliki stempel waktu yang disimpan dalam satu sesi (1299446702).

Bagaimana saya bisa mengubahnya menjadi tanggal / waktu yang dapat dibaca dalam PHP? Saya telah mencoba srttotime, dll. Tetapi tidak berhasil.

Adamski
sumber

Jawaban:

396

Gunakan date()fungsi PHP .

Contoh:

echo date('m/d/Y', 1299446702);
Roket Hazmat
sumber
1
Anda dapat mengunjungi epochconvert.com/programming/php untuk zaman atau cap waktu hingga tanggal yang dapat dibaca manusia menggunakan PHP.
Laeeq
84

strtotime membuat string tanggal menjadi stempel waktu. Anda ingin melakukan yang sebaliknya, yaitu tanggal . Format tanggal mysql yang khas adalah date('Y-m-d H:i:s'); Periksa halaman buku panduan untuk apa yang diwakili surat lain.

Jika Anda memiliki cap waktu yang ingin Anda gunakan (ternyata Anda punya), itu adalah argumen kedua date().

Pil Ledakan
sumber
4
akan menjadi catatan yang baik bahwa saya melewati tanggal saya saat ini sebagai berikut:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo
apakah tidak ada perintah untuk mengubah stempel waktu ke standarisasi datetime mereka karena saya mengubah datetime menjadi stempel waktu unix tetapi dalam database saya itu masih datetime saya wil coba ini tetapi saya masih merasa aneh bahwa tidak ada perintah khusus untuk itu
Marc Roelse
64

Saya baru saja menambahkan H: i: s ke jawaban Rocket untuk mendapatkan waktu bersama dengan tanggal.

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

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

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

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

Zona waktu lainnya:

Stanislav Malomuzh
sumber
23

Jika Anda menggunakan PHP date(), Anda dapat menggunakan kode ini untuk mendapatkan tanggal, waktu, detik, dll.

$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
sumber
12
Bagaimana dengan tahun kabisat dan kedua ...?
Petteri Hietavirta
$year = date('Y', $time)
Ruben Kazumov
16

Saya tahu itu pertanyaan lama, tetapi tinggi dalam hasil pencarian.

Jika ada yang ingin konversi cap waktu langsung ke objek DateTime, ada satu baris sederhana:

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

Mengikuti komentar @sromero, parameter zona waktu (param ke-3 di DateTime :: createFromFormat ()) diabaikan ketika cap waktu unix dilewati, jadi kode di bawah ini tidak perlu.

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

Anda dapat memeriksa manual PHP untuk DateTime :: createFromFormat untuk informasi dan opsi lebih lanjut.

Pascal
sumber
1
Buat komentar tentang baris kode terakhir Anda: sesuai dengan halaman manual yang Anda tautkan: "Catatan: Parameter zona waktu dan zona waktu saat ini diabaikan ketika parameter waktu berisi cap waktu UNIX (mis. 946684800) atau menentukan zona waktu (misalnya 2010) -01-28T15: 00: 00 + 02: 00). "
sromero
@romero Anda benar. Parameter zona waktu diabaikan dalam kasus ini.
Pascal
14

Cobalah.

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

Anda dapat mencoba ini:

   $mytimestamp = 1465298940;

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

Output:

06-07-2016

Pratik Mehta
sumber
8

Kecuali jika Anda memerlukan format tanggal dan waktu khusus, lebih mudah, lebih rentan kesalahan, dan lebih mudah dibaca untuk menggunakan salah satu konstanta format waktu tanggal bawaan :

echo date(DATE_RFC822, 1368496604);
uskup
sumber
2
Ini harus menjadi jawaban teratas.
alexg
6

Coba yang ini:

echo date('m/d/Y H:i:s', 1541843467);
Sunni Ha
sumber
1
Hai yang disana! Tampaknya jawaban ini telah diajukan; lihat jawaban teratas.
topi
4

echo date("l M j, Y",$res1['timep']);
Ini sangat bagus untuk mengonversi cap waktu unix ke tanggal yang dapat dibaca bersama hari. Contoh: Kamis 7 Jul 2016

Harry Singh
sumber
1
Jawaban serupa sudah diposting, apa informasi plus di dalam jawaban Anda?
Steffen Harbich
4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);
Ouane Merah
sumber
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

Dalam contoh di atas "r" dan "Ymd H: i: s" adalah format tanggal PHP, contoh lain:

Output Format

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
sumber