Aby zmienić 2009-12-09 13:32:15
na 09/12/2009
Jak najlepiej formatować datetime w PHP?
6
A
Odpowiedz
13
tutaj:
echo date("d/m/Y", strtotime('2009-12-09 13:32:15'))
0
Przy użyciu metody .
print date("d/m/Y", strtotime("2009-12-09 13:32:15"));
4
Można użyć strtotime
aby uzyskać znacznik czasowy w pierwszym terminie, a date przekonwertować go na ciąg w formacie chcesz.
$timestamp = strtotime('2009-12-09 13:32:15');
echo date('d/m/Y', $timestamp);
a dostaniesz:
09/12/2009
[edit 2012-05-19] Uwaga że strtotime()
cierpi kilka potencjalnie ważnych ograniczeń :
- Formatem daty musi być
YYYY-MM-DD
; może działać w niektórych innych przypadkach, ale nie zawsze! - Również praca z UNIX Timestamps, jak zrobić z
date()
istrtotime()
oznacza, że będziesz mógł pracować tylko z datami między rokiem 1970 a 2038 (ewentualnie w szerszym zakresie, w zależności od systemu - ale nie jedno i illimited tak)
Praca z klasą DateTime
jest często znacznie lepsza alternatywa:
- można użyć
DateTime::__construct()
lubDateTime::createFromFormat()
stworzyćDateTime
obiekt - drugi jest dostępny tylko z PHP> = 5.3, ale pozwala określić format daty, który może okazać się przydatny, - Możesz również użyć metody
DateTime::format()
, aby przekonwertować ten obiekt na dowolny format daty może chcieć pracować.
0
$long_date = '2009-12-09 13:32:15';
$epoch_date = strtotime($long_date);
$short_date = date('m/d/Y', $epoch_date);
Powyższe nie jest najkrótsza droga robi, ale o długiej datę jako timestamp epoka zapewnia, że można ponownie użyć oryginalnego długą datę, aby znaleźć inne wyjście formatu daty, jak gdybyś zamierzał wrócić i mieć czas gdzieś indziej.