ugrás a tartalomhoz

Időbélyeg készítése

togyika · 2008. Jún. 13. (P), 08.36
Sziasztok!

Egy adatbázisból a következő képpen kapom meg a dátumot:
$date=20080610134522;
Ahhoz, hogy időbélyeget készítsek, szükségem van részekre bontani ezt a dáumot a következő képpen:
óra, perc, másodperc, hónap, hónap napja, év

Ehhez a következő megoldást alkalmaztam:
$ev=substr($date, 0, 4);
$ho=substr($date, 4, 2);
$nap=substr($date, 6, 2);
$ora=substr($date, 8, 2);
$perc=substr($date, 10, 2);
$sec=substr($date, 12, 2);
Sajnos a köv eredményt kaptam:
2006 év
06 hó
10 nap
13 óra
45 perc
00 => vagyis a másodpercet nem adja vissza.

Kérlek benneteket, hogy adjatok megoldási javaslatokat, hogyan tudnám megoldani ezt a problémát. Segítségeteket előre is köszönöm!

Bence
 
1

string <-> numeric

N0r3i · 2008. Jún. 13. (P), 08.47
Szia!

Szerintem csinálj szöveget a numerikus $date változódból, mert így valószínűleg a tárolási pontatlanság miatt az utolsó 2 jegy elvész.

Szóval így: $date='20080610134522';
A többi jó.

Norbi
2

mysql?

zila · 2008. Jún. 13. (P), 09.21
Nem írtad milyen adatbázist használsz, ha mysql-t akkor az időbélyeget egyből lekérdezheted unix timestamp-ként is és akkor nem kell kódban konvertálgatni.

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
4

omg

duplabe · 2008. Jún. 13. (P), 09.30
Na igen, ezzel a strtotime-ot ki lehet hagyni :)

Ha már azt vesszük, hogy mysql, akkor a date_format függvénnyel közvetlenül olyan formátumban is le tudod kérdezni, ahogy kell. A zila által említett oldalon ezt is meg tudod nézni.
3

strtotime

duplabe · 2008. Jún. 13. (P), 09.26
szia!

A php beépített strtotime függvényével, át tudod alakítani unix timestamp-é, azt pedig a date függvénynek átadva, a kívánt formátumra alakítani. Tehát
$aminekedkell = date('formátum', strtotime('az adatbázisból jövő string'));
A formázások ott vannak a date függvény oldalán.