PHP5 1 खाली समय चर / गणना के मानव संसाधन जोड़ने

वोट
1

मैं हाल ही में PHP5 में अपग्रेड किया है, और noticied है कि एक आवेदन पत्र मेरे द्वारा बनाए गए के भीतर एक अतिरिक्त घंटे मेरी चर और caculations में से कुछ को जोड़ा गया प्रतीत हो रहा है।

मै इस्तेमाल कर रहा हूँ:

date_default_timezone_set ( 'यूरोप / लंदन');

जो मुझे समझ में इसका मतलब है कि पीएचपी मानक जीएमटी करने का विरोध किया BST उपयोग कर रहा है, लेकिन जब मैं खाली चर प्रिंट (का उपयोग करते हुए एच: मैं 00:00 के रूप में पहले लौटे) - मैं अब 01:00 हो रही है।

जब घंटे / मिनट दो datetimes के बीच का अंतर caculating - मैं भी एक अतिरिक्त घंटे हो रही है।

मेरे बुनियादी कोड है:

<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>

एक उदाहरण के लिए कौन सा रिटर्न rown:

प्रारंभ: 08:57 ($ आइटम, के आधार पर> 2011-03-19 08:57:23 मेरी DB में start_time के रूप में)

समाप्त: 00:59 ($ आइटम, के आधार पर> 2011-03-19 00:59:38 मेरी DB में finish_time के रूप में)

Caculation: 05:02 (यह 4:02 होना चाहिए)

21/04/2011 को 10:09
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

सेट करके देखें

date_default_timezone_set('UTC');

तुरंत एच करने के लिए अपने बीता हुआ समय परिवर्तित करने से पहले: मैं प्रारूप में

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

बाद में इसे फिर से पुनर्स्थापित करने के लिए याद

आप प्रारूपण के लिए एक datetime टिकट के रूप में बीता हुआ समय इलाज कर रहे हैं (कि क्या तारीख () फ़ंक्शन की उम्मीद है) तो पीएचपी यह मानक व्यवहार है निम्नलिखित है और एक स्थान स्वरूपित दिनांक / समय के रूप में यह इलाज (प्रशंसा नहीं है कि यह एक बीत के रूप में इस्तेमाल किया जा रहा है है समय), तो यह आपके समय क्षेत्र सेटिंग के अनुसार सही समय प्रदर्शित करने के लिए घंटे जोड़ने है।

21/04/2011 को 13:37
का स्रोत उपयोगकर्ता

वोट
1

आप समय में एक बिंदु के रूप में समय अंतर का इलाज कर रहे हैं जब आप तारीख का उपयोग करें ( "एच: मैं")। मेरा सुझाव है कि आप बस मैन्युअल रूप से बीता हुआ समय अंतर की गणना

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

अन्यथा आप समस्या में पड़ जाएगा, जब $ बीता बड़ा तो 24 घंटे है।

21/04/2011 को 14:08
का स्रोत उपयोगकर्ता

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