Witam
mam skrypt ale on źle wyświetla date np. jak dodam newsa bo to dotyczy newsów i dodam go dziś o 22.00 to działa dobrze wyświetla że dodano przed chwilą potem ile minut temu godzin itp ale jak na następny dzień patrzę o godzinie np. 12.00 to piszę dodano dzisiaj, 22.00 co jest nie tak z nim czemu tak wyświetla dopiero jak minie godzina 22.00 to wyświetla że dodano wczoraj
Tu skrypt
<?php
function getMinutes($minut)
{
switch($minut)
{
case 0: return 0; break;
case 1: return 1; break;
case ($minut >= 2 && $minut <= 4):
case ($minut >= 22 && $minut <= 24):
case ($minut >= 32 && $minut <= 34):
case ($minut >= 42 && $minut <= 44):
case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break;
default: return "$minut minut temu"; break;
}
return -1;
}
function getDiff($timestamp)
{
if ($timestamp > $now) {
echo 'Podana data nie moze byc wieksza od obecnej.'; return;
}
$diff = $now - $timestamp;
$minut = floor($diff/60
); $godzin = floor($minut/60
); $dni = floor($godzin/24
);
if ($minut <= 60) {
$res = getMinutes($minut);
switch($res)
{
case 0: return "Przed chwila";
case 1: return "Minute temu";
default: return $res;
}
}
if ($godzin >= 6 && $godzin <= 24) {
return "Dzisiaj, ".date("H:i", $timestamp).""; }
elseif ($godzin > 0 && $godzin < 24) {
$restMinutes = ($minut-(60*$godzin));
$res = getMinutes($restMinutes);
if ($godzin == 1) {
return "Godzine temu";
} else {
return "$godzin godzin temu";
}
}
if ($godzin >= 24 && $godzin <= 48) {
return "Wczoraj, ".date("H:i", $timestamp).""; }
if ($godzin >= 48 && $godzin <= 72) {
return "Przedwczoraj, ".date("H:i", $timestamp).""; }
switch($dni)
{
case ($dni < 7):
return "$dni dni temu"; break;
case 7:
return "Tydzien temu"; break;
case ($dni > 7 && $dni < 14):
return "Ponad tydzien temu"; break;
case 14:
return "Dwa tygodznie temu"; break;
case ($dni > 14 && $dni < 21):
return "Ponad dwa tygodnie temu"; break;
case 21:
return "Trzy tygodznie temu"; break;
case ($dni > 21 && $dni < 30):
return "Ponad trzy tygodnie temu"; break;
case 30: case 31:
return "Miesiac temu"; break;
case ($dni > 31):
return date("d.m.Y, H:i", $timestamp); break; }
return date("d.m.Y, H:i", $timestamp); }
?>
ta wyświetlam datę
getDiff($row['data'])
Ten post edytował aleks365 11.05.2012, 09:19:16