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.

Jawaban:



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().


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



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

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.


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

8

Anda dapat mencoba ini:

   $mytimestamp = 1465298940;

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

Output:

06-07-2016


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

2
Ini harus menjadi jawaban teratas.
alexg

6

Coba yang ini:

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

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


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.