kivonás időben (mktime vagy más)
Sziasztok,
egyszerű műveletet szeretnék csinálni. van egy feladat elkezdési és egy elvégzési időm a sessionban szépen letárolva. Ezt elküldöm egy function()nak, hogy akkor a tobbi adattal egyutt ezek kulonbseget is rogzitse (H:i:s) formatumban. A kulonbseget igy probalom kiszamolni:
■ egyszerű műveletet szeretnék csinálni. van egy feladat elkezdési és egy elvégzési időm a sessionban szépen letárolva. Ezt elküldöm egy function()nak, hogy akkor a tobbi adattal egyutt ezek kulonbseget is rogzitse (H:i:s) formatumban. A kulonbseget igy probalom kiszamolni:
//elvileg H:i:s formaban kapom mindkettot, ezert bontom
//ido formatum: H:i:s
$end2 = explode(':', $end);
//Array ( [0] => 01 [1] => 36 [2] => 20 ) minta end2 print_r
$start2 = explode(':', $start);
//Array ( [0] => 01 [1] => 34 [2] => 18 ) minta start2 print_r
//itt meg csinalok datum formatumot a ket idopont kivonatabol visszaforgatva
$hossz = date('H:i:s', mktime($start2[0], $start2[1], $start2[2], date('m'), date('d'), date('Y'))
-mktime($end2[0], $end2[1], $end2[2], date('m'), date('d'), date('Y'));
//ido formatum: H:i:s
$end2 = explode(':', $end);
//Array ( [0] => 01 [1] => 36 [2] => 20 ) minta end2 print_r
$start2 = explode(':', $start);
//Array ( [0] => 01 [1] => 34 [2] => 18 ) minta start2 print_r
//itt meg csinalok datum formatumot a ket idopont kivonatabol visszaforgatva
$hossz = date('H:i:s', mktime($start2[0], $start2[1], $start2[2], date('m'), date('d'), date('Y'))
-mktime($end2[0], $end2[1], $end2[2], date('m'), date('d'), date('Y'));
megválaszolom magam...
//ido formatum: H:i:s
$end2 = explode(':', $end);
$start2 = explode(':', $start);
$deadline1 = mktime($end2[0], $end2[1], $end2[2], date('m'), date('d'), date('Y'));
$deadline2 = mktime($start2[0], $start2[1], $start2[2], date('m'), date('d'), date('Y'));
$hossz = round( ($deadline2 - $deadline1) );
$hossz = (int)str_replace('-', '', $hossz);
//ora
if($hossz > 3600)
{
$ora = round($hossz/3600);
}
else $ora = '00';
//perc
if($ora <> '00')
{
$maradek = $i-(60*60*$ora);
$perc = round($maradek/60)-1;
}
else
{
$perc = round($hossz / 60);
}
//korrekcio
if(($hossz%$perc) > 30) $perc - 1; //mert mindig ekkor folfele kerekit, nem lefele
if(strlen($ora) < 2) $ora = '0'.$ora; //vezeto nulla
if(strlen($perc) < 2) $perc = '0'.$perc; //vezeto nulla
//masodperc
if($perc <> '00')
{
if(isset($maradek)) $mperc = $maradek - ($perc*60);
else $mperc = $hossz - ($perc*60);
}
else $mperc = $hossz;
$hossz = $ora.':'.$perc.':'.$mperc;