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.

<?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

Harder

Harder

Profil

Korábbi hozzászólások (5)

A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.

  1. Dzsekk

    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.

    $ido = strtotime($sor["datum"]);

  2. e-liaswww.e-lias.hu

    Nem, a $ido egy timestamp.

  3. Dzsekk

    Igen, volt már timestamp is, de nem ír ki semmit. Ötlet, hogy mit nem írok (jól)?

  4. e-liaswww.e-lias.hu

    Így próbáltad?

    $ido = strtotime($sor["datum"]);
    print elido($ido);

    Esetleg nem lehet, hogy a $ido változód üres? Vagy nem tstamp van benne?

  5. Dzsekk

    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.

Van hozzáfűznivalód? Írj nekem közvetlenül.

Kapcsolat