Autor Zpráva
koolazz
Profil *
Zdravím všechny, řeším teď jednu záležitost a to je zjištění data po splatnosti.
Kde vstup je datum vystavení, jednotka o kterou bude navýšeno datum a samotná hodnota navýšení.

Napsal jsem si fci, která víceméně funguje. Fce otestuje zda zadané datum navýšené o dané jednotky (dny, měsíce, roky) je k dnešnímu dni zastaralé nebo ne.

Potřeboval bych vymyslet jak dopočítat, aby fce vrátila kolik dnů po zadaném datumu (navýšené o dané jednotky) je po splatnosti.

Celé to mám řešeno takto:

<?php

$data = array ('date_from' => '08.10.2007', 'qty' => 1, 'mj' => 'd');

function ZjistiPlatnost($zaznam) {

// nastavime si promenne na default hodnoty
$Months = 0;
$Days = 0;
$Years = 0;

// podle typu jednotky mnozstvi naplnime promene ke splatnosti
switch($zaznam['mj']) {

case 'm' : $Months = $zaznam['qty']; break;
case 'd' : $Days = $zaznam['qty']; break;
case 'y' : $Years = $zaznam['qty']; break;

}

// datum vystaveni
$explode_date_from = explode(".", $zaznam['date_from']);
// datum splatnosti
$datum = mktime(0, 0, 0, $explode_date_from[1] + $Months, $explode_date_from[0] + $Days, $explode_date_from[2] + $Years);
// dnesni datum
$datum_today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));

if($datum < $datum_today) { return false; }
else { return true; }

}

if(ZjistiPlatnost($data)) { echo 'Datum je po splatnosti'; }
else { echo 'Datum není po splatnosti.'; }
?>

Napadá někoho jak tento problém řešit? Budu i rád pokud se vyjádříte k fci, asi nebude stoprocentní a úplně ideální.

Díky moc.
Mireczech
Profil
nez takto programove, tak bych to mozna resil primo na strane DB (SELECT (now()-splatnost) AS pocet FROM ....)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: