Zaman damgasını okunabilir tarih / saate PHP'ye dönüştürme


227

Bir oturumda saklanan bir zaman damgası var (1299446702).

Bunu PHP'de okunabilir bir tarihe / saate nasıl dönüştürebilirim? Ben boşuna srttotime, vb denedim.

Yanıtlar:



84

strtotime, tarih dizesini zaman damgasına dönüştürür. Bunun tam tersini yapmak istersiniz, tarih . Tipik mysql tarih biçimi date('Y-m-d H:i:s'); Diğer harflerin neyi temsil ettiğini görmek için kılavuz sayfasına bakın.

Kullanmak istediğiniz bir zaman damganız varsa (görünüşe göre öyle), bunun ikinci argümanıdır date().


4
şu anki tarihimi şu şekilde echo date('m/d/Y', strtotime($current_date_variable);
geçmem iyi olur

bir zaman damgasını datetime standardizasyonuna dönüştürmek için bir komut yok, çünkü bir datetime'i bir unix zaman damgasına dönüştürdüm, ancak veritabanımda hala bir datetime bunu deniyorum ama yine de bunun için belirli bir komut olmadığını garip buluyorum
Marc Roelse

64

Tarihle birlikte zamanı almak için Rocket'in cevabına H: i: s ekledim.

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

Çıktı: 03/06/2011 16:25:02



23

PHP kullanıyorsanız date(), tarihi, saati, saniyeyi vb. Almak için bu kodu kullanabilirsiniz.

$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
Artık yıl ve saniye ...
Petteri Hietavirta

$year = date('Y', $time)
Ruben Kazumov

16

Bunun eski bir soru olduğunu biliyorum, ancak arama sonuçlarında yüksek.

Birisi doğrudan bir DateTime nesnesine zaman damgası dönüştürmek istiyorsa, basit bir tek satır vardır:

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

@Sromero yorumundan sonra, unix zaman damgası geçirildiğinde saat dilimi parametresi (DateTime :: createFromFormat () öğesindeki 3. parametre) yok sayılır, bu nedenle aşağıdaki kod gereksizdir.

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

Daha fazla bilgi ve seçenek için DateTime :: createFromFormat için PHP'nin el kitabına bakabilirsiniz .


1
Son kod satırınızla ilgili bir yorum yapın: bağladığınız manuel sayfaya göre: "Not: Zaman parametresi bir UNIX zaman damgası (ör. 946684800) içerdiğinde veya bir zaman dilimi (ör. 2010) belirlediğinde saat dilimi parametresi ve geçerli saat dilimi yoksayılır -01-28T15: 00: 00 + 02: 00) ".
sromero

@sromero Haklısın. Bu durumda saat dilimi parametresi yoksayılır.
Pascal

14

Dene.

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

8

Bunu deneyebilirsiniz:

   $mytimestamp = 1465298940;

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

Çıktı :

2016/06/07



6

Bunu dene:

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

1
Merhaba! Bu cevap zaten önerilmiş gibi görünüyor; üst cevaba bakınız.
şapka

4

echo date("l M j, Y",$res1['timep']);
Bu, unix zaman damgasını günle birlikte okunabilir bir tarihe dönüştürmek için gerçekten iyidir. Örnek: 7 Temmuz 2016 Perşembe


1
Benzer cevaplar zaten yayınlanmıştır, cevabınızdaki artı bilgi nedir?
Steffen Harbich


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

Yukarıdaki örneklerde "r" ve "Ymd H: i: s" PHP tarih biçimleridir, diğer örnekler:

Çıktıyı Biçimlendir

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.