PHP5 hozzátéve 1 HR üres időkoordináták / számításokat

szavazat
1

Én nemrég frissített PHP5, és már noticied hogy egy alkalmazáson belül amit épített úgy tűnik, hogy egy órával adjuk az én változók és caculations.

Használom:

date_default_timezone_set (Europe / London ');

általam értett azt jelenti, hogy a PHP használatával BST szemben a hagyományos GMT, de amikor nyomtatni üres változók (vissza, mielőtt 00:00 a „H: i”) - Én most kezd 01:00.

Amikor caculating az óra / perc különbség a két datetimes - én is kapok egy órát.

Alapvető kód:

<td><?php if(isset($item->start_time)) { echo date('H:i', strtotime($item->start_time)); } ?></td>
<td><?php if(isset($item->finish_time)) { echo date('H:i', strtotime($item->finish_time)); }?></td>
<td>
     <?php
     $start = strtotime($item->start_time);
     $end = strtotime($item->finish_time);
     $elapsed = $end - $start;
     if($elapsed != NULL) { echo date(H:i, $elapsed); }
     ?>
</td>

Melyik példaként rown visszatér:

Kezdés: 08:57 (alapján $ item> start_time mint 2011-03-19 08:57:23 én DB)

Befejezés: 00:59 (alapján $ item> finish_time mint 2011-03-19 12:59:38 én DB)

Caculation: 05:02 (Ezt kell 04:02)

A kérdést 21/04/2011 10:09
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Próbálja meg

date_default_timezone_set('UTC');

közvetlenül megelőzően konvertáló eltelt időt H: i formázza a

if($elapsed != NULL) { echo date("H:i", $elapsed); } 

emlékezve a visszaállításához utána újra

Te kezeljük az eltelt idő datetime bélyeg formázáshoz (ez az, amit a date () függvény elvárja), így a PHP alábbi ez normál működését, és a kezelést, mint a területi formátumú dátum / idő (nem érzékelem, hogy ez is használható eltelt idő), ezért azt hozzáadjuk az óra a pontos időt szerint az időzóna beállítását.

Válaszolt 21/04/2011 13:37
a forrás felhasználó

szavazat
1

Ön kezelésére az időeltolódás, mint egy olyan időpontban, amikor használja dátum ( „H: i”). Azt javaslom, hogy csak számítani az eltelt időt különbség kézzel

echo floor( $elapsed / 60) . ":" . ($elapsed % 60)

Egyébként akkor befut probléma, ha $ eltelt nagyobb, akkor 24 órán keresztül.

Válaszolt 21/04/2011 14:08
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more