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
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;
}