Witam.
Posiadam taki fajny mechanizm wyliczający ilość lat. W bazie jest data, a mechanizm wyswietla ile lat minęło od tej daty. Jest tylko jeden problem bo przy większej ilości lat pojawia się coraz większy błąd, wydaje mi się że chodzi o lata przestępne.
Ktoś wie w jaki sposób to rozwiązać ?
<?
function sufix ($Number) {
}
function wiek ($Date, $Date2, $Text = '', $Text2 = '') {
if ($Date2 == 'NOW') {
$Prefix = $Text;
}
else {
$Date2 = $Date;
$Prefix = $Text2;
}
}
else {
$Prefix = 'Roznica czasu pomiedzy tymi dwiema datami wynosi: ';
}
$Years=floor(($Date2-$Date)/(86400
*365
)); //$Monts=floor(($Date2-$Date-$Years*(86400*365))/(2678400));
//$Days=floor(($Date2-$Date-$Years*(86400*365)-$Monts*2678400)/(86400));
//$Hours = intval ((($Date2 - $Date) / 3600) - ($Days * 24));
//$Minutes = intval ((($Date2 - $Date) / 60) - (($Hours * 60) + ($Days * 1440)));
//$Seconds = intval ($Date2 - $Date - (($Minutes * 60) + ($Hours * 3600) + ($Days * 86400)));
return ($Prefix.((!empty ($Years))?
$Years.(($Years == 1)?
' rok, ':' lat'):''). ((!empty ($Monts))?
$Monts.(($Monts == 1)?
' miesiąc, ':' miesięcy, '):''). ((!empty ($Days))?
$Days.(($Days == 1)?
' dzień':' dni'):''). ((!empty ($Days) && !empty ($Hours))?
', ':'').((!empty ($Hours))?
$Hours.' godzin'.sufix
($Hours):''). ((!empty ($Minutes))?
$Minutes.' minut'.sufix
($Minutes):''). ((!empty ($Seconds))?
$Seconds.' sekund'.sufix
($Seconds):'').'.'); }
?>
do wyświetlania używam:
<?php
$a=wiek(''.$result['data_ur'].'','NOW');