A minap belefutottam abba a problémába, hogy nem a dátumot kellett kiíratnom, hanem az azóta eltelt időt. Nos itt van rá egy script.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php function elido($ido, $time = null) { $tp = $ido; $time = Is_null($time) ? time() : $time; $ido2 = abs($time - $tp); $sec = $ido2; $min = floor ($ido2 / 60); $min2 = $min % 60; $hour = floor ($ido2 / 60 / 60); $hour2 = $hour % 24; $days = floor ($ido2 / 60 / 60 / 24); $days2 = $days % 7; $week = $week2 = floor ($ido2 / 60 / 60 / 24 / 7); if ( $week2 >= 4) { return date ( "Y.m.d H:i", $tp ); } $elap = ''; if ( $sec > 0 ) { $elap = $sec.' másodperce'; if ( $min != 0 ) { $elap = $min2.' perce'; if ( $hour != 0 ) { $elap =$hour2.' órája'.' '.$min2.' perce'; if ( $days != 0 ) { $elap =$days2.' napja'.' '.$hour2.' órája'; if ( $week != 0 ) { $elap =$week2.' hete'.' '.$days2.' napja'; } } } } } if ( $elap == '' ) { return 'most'; } else { return $elap; } } |
Ez a script egy unix időbélyeget vár. Ezen kívül megadható egy második is, ha nem az aktuális időhöz szeretnénk viszonyítani.
A 4. hét eltelte után a dátumot írja ki. Előtte pedig mindig 2 paramétert sorrendben: másodperc, perc-másodperc, óra-perc, nap-óra, hét-nap.
Remélem hasznos lesz. Ha valami hiba van a kódban, akkor szóljatok, mert eddig én nem találkoztam vele.
Megjegyzés: módosítottam a kódon, felvittem a második paraméter megadásának lehetőségét. – BlackY
Szia!
Biztos velem van a hiba, de már mindenhogy próbáltam működésre bírni, de hiába.
Szóval az idő egy datetime típusú mező, strtotime() függvénnyel.
Nem, a $ido egy timestamp.
Igen, volt már timestamp is, de nem ír ki semmit. Ötlet, hogy mit nem írok (jól)?
Így próbáltad?
Esetleg nem lehet, hogy a $ido változód üres? Vagy nem tstamp van benne?
Hálás vagyok, működik, azt hittem már mindent bevetettem. :) Viszont azt megkérdezhetem, miért szükséges timestamp hozzá? Kipróbáltam és datetime-al is működik.