ugrás a tartalomhoz

kivonás időben (mktime vagy más)

MSzilveszter · 2008. Jún. 30. (H), 01.38
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:
//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'));
 
1

megválaszolom magam...

MSzilveszter · 2008. Jún. 30. (H), 02.50
Ilyen se volt még, saját magam válaszolom meg a kérdést, bár lehet, eléggé paraszt kóddal, de sikerült megoldanom a kérdést:

//elvileg H:i:s formaban kapom mindkettot, ezert bontom
//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;