Za pomocą PHP chcę przekonwertować znaczniki czasu UNIX na ciągi dat podobne do tego: 2008-07-17T09:24:17Z
Jak przekonwertować znacznik czasu, taki jak 1333699439
na 2008-07-17T09:24:17Z
?
Za pomocą PHP chcę przekonwertować znaczniki czasu UNIX na ciągi dat podobne do tego: 2008-07-17T09:24:17Z
Jak przekonwertować znacznik czasu, taki jak 1333699439
na 2008-07-17T09:24:17Z
?
Odpowiedzi:
Spróbuj gmdate
tak:
<?php
$timestamp=1333699439;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>
date
i gmdate
wyniki będą się różnić w zależności od zmiennej TZ (przynajmniej na * nix)
użyj funkcji daty date ( string $format [, int $timestamp = time() ] )
Użyj date('c',time())
jako formatu do konwersji na datę ISO 8601 (dodano w PHP 5) -2012-04-06T12:45:47+05:30
użyj, date("Y-m-d\TH:i:s\Z",1333699439)
aby uzyskać2012-04-06T13:33:59Z
Oto niektóre obsługiwane formaty daty
<?php
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
?>
Zakładając, że używasz PHP 5.3, to nowoczesny sposób obsługi dat odbywa się za pośrednictwem rodzimej klasy DateTime . Aby uzyskać aktualny czas, możesz po prostu zadzwonić
$currentTime = new DateTime();
Aby utworzyć obiekt DateTime na podstawie określonego znacznika czasu (tj. Nie teraz)
$currentTime = DateTime::createFromFormat( 'U', $timestamp );
Aby uzyskać sformatowany ciąg, możesz wywołać
$formattedString = $currentTime->format( 'c' );
Zobacz stronę podręcznika tutaj
Bardzo ważne jest ustawienie domyślnej strefy czasowej, aby uzyskać poprawny wynik
<?php
// set default timezone
date_default_timezone_set('Europe/Berlin');
// timestamp
$timestamp = 1307595105;
// output
echo date('d M Y H:i:s Z',$timestamp);
echo date('c',$timestamp);
?>
Pomoc dotycząca konwersji online: http://freeonlinetools24.com/timestamp
Z
jest używany do wskazania, że jest to czas UTC, więc strefę czasową należy ustawić naUTC
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime);
To powinno zadziałać.
Informacje w tej rozmowie znalazłem tak pomocne, że chciałem tylko dodać, jak to wymyśliłem, korzystając ze znacznika czasu z mojej bazy danych MySQL i małego PHP
<?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?>
Dane wyjściowe: 2017-03-03T08: 22: 36 + 01: 00
Bardzo dziękuję Stewe, że odpowiedź była dla mnie eureką.
Możesz zrobić jak .....
$originalDate = "1585876500";
echo $newDate = date("Y-m-d h:i:sa", date($originalDate));
gmdate()
zwraca to daty / godziny w GMT.date()
zwróci lokalną datę / godzinę.