Porównywanie daty

0

Mam tak: opcja edytuj w komentarzy i chcę, aby ona była dostępna tylko wtedy, gdy będzie komentarz się mieścił w przedziale 5 min od wysłania kometarza, czyli jeżeli ktoś napisze komentarz to w przeciągu 5 minut od dodania go będzie mógł sobie go edytować, ale po 5 minutach od wysłania już ta okcja nie bedzie się pojawiać.
Jak to zrobić ?

0

potraktuj obie daty strtotime(), potem policz różnicę (wyjdzie w sekundach), sprawdź czy jest większa niż 5*60 i wg tego albo wyświetlaj, albo nie wyświetlaj buttona (i oczywiście po stronie serwera też danych edycji nie przyjmuj jak minie 5 minut, ukrycie buttona to mały problem, który da się obejść)

0
if((strtotime($teraz) - strtotime($datapobrana))<=5*60){}

Jest OK. a jak zrobić teraz, aby to zmienić tak, aby pokazywało np. "Dodano x minut temu" ?

0

Najlepiej pobrać do tego jakąś bibliotekę (żeby nie bawić się samodzielnie w odmianę). Chyba, ze chcesz na sztywno tylko minuty i nie razie cię komunikat dodano 1 minut temu - to wtedy po prostu znowu odejmij jedno od drugiego, podziel wynik przed 60 i zaokrąglij

0

Ja sobie tego używam:

function prettyDiff($diff){
		$ts = '';
		if($diff < 60){
			$ts = 'mniej niż minutę';
		}elseif($diff < 60*60){
			$t = round($diff / 60);
			if($t == 1)
				$ts = 'minutę';
			elseif($t > 1 && $t < 5)
				$ts = $t.' minuty';
			elseif($t >= 5)
				$ts = $t.' minut';
		}elseif($diff < 60*60*24){
			$t = round($diff / 60 / 60);
			if($t == 1)
				$ts = 'godzinę';
			elseif($t > 1 && $t < 5)
				$ts = $t.' godziny';
			elseif($t >= 5)
				$ts = $t.' godzin';
		}elseif($diff < 60*60*24*7){
			$t = round($diff / 60 / 60 / 24);
			if($t == 1)
				$ts = 'dzień';
			elseif($t > 1)
				$ts = $t.' dni';
		}elseif($diff < 60*60*24*30){
			$t = round($diff / 60 / 60 / 24 / 7);
			if($t == 1)
				$ts = 'tydzień';
			elseif($t > 1 && $t < 5)
				$ts = $t.' tygodnie';
			else
				$ts = $t.' tygodni';
		}elseif($diff < 60*60*24*365){
			$t = round($diff / 60 / 60 / 24 / 30);
			if($t == 1)
				$ts = 'miesiąc';
			elseif($t > 1 && $t < 5)
				$ts = $t.' miesiące';
			else
				$ts = $t.' miesięcy';
		}else{
			$t = round($diff / 60 / 60 / 24 / 365);
			if($t == 1)
				$ts = 'rok';
			elseif($t > 1 && $t < 5)
				$ts = $t.' lata';
			else
				$ts = $t.' lat';
		}

		return $ts;
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1