簡體   English   中英

如何在php的Date函數中嵌入數字值然后獲得區別?

[英]How to embed numbers values in a Date function in php then get difference?

我有一個文件,其中我必須計算花費的總時間。 但是問題是我收到的數據分為小時和分鍾。 我將其轉換為date()函數,然后使用PHP內置的time_diff()函數找到不同之處。 但是還沒有成功..懇請幫助.... 這是我正在獲取的數據:

$HoursIn = $ls[$j][2];               // Punch-In Hours (e.g: 09)
$MinutesIn = $ls[$j][3];            // Punch-In Minutes (e.g: 38)
$TimeIn = $HoursIn.":".$MinutesIn; // Punch-In Total Time (e.g: 09:38)

$HoursOut = $ls[$j][4];                 // Punch Out Hours (e.g: 17)
$MinutesOut = $ls[$j][5];              // Punch Out Minutes (e.g: 44)
$TimeOut = $HoursOut.":".$MinutesOut; // Punch-Out Total Time (e.g: 17:44)

我已經試過了:

$HoursIn = 09;               // Punch-In Hours (e.g: 09)
$HoursIn->format('%h');
$MinutesIn = 38;           // Punch-In Minutes (e.g: 38)
$MinutesIn->format('%i');
$TimeIn = $HoursIn.":".$MinutesIn; // Punch-In Total Time (e.g: 09:38)

$HoursOut = 17;                 // Punch Out Hours (e.g: 17)
$HoursOut->format('%h');
$MinutesOut = 44;              // Punch Out Minutes (e.g: 44)
$MinutesOut->format('%i');
$TimeOut = $HoursOut.":".$MinutesOut;

echo $interval = $TimeOut->diff($TimeIn);

但是出現致命錯誤...

這是我的解決方案。 樣品的結果為1小時3分鍾。 希望清楚,但如有任何問題-問我:

<?php
$in_time=sprintf("%04u-%02u-%02u %02u:%02u:02u",2015,5,6,12,5,0); // Values : Year Month Day hour min sec
$out_time=sprintf("%04u-%02u-%02u %02u:%02u:02u",2015,5,6,17,8,0); // Values : Year Month Day hour min sec
$TimeIn = new DateTime($in_time);
$TimeOut = new DateTime($out_time);

$interval = $TimeIn->diff($TimeOut);
echo $interval->format('%h:%i');
?>

@MarkBaker我已經在您的幫助下做到了! 謝謝! 我得到這樣的結果:

$HoursIn = $ls[$j][2];         // Punch-In Hours
$MinutesIn = $ls[$j][3];      // Punch-In Minutes
$timein = gmdate('H:i:s', $HoursIn*60*60+$MinutesIn*60);

$HoursOut = $ls[$j][4];        // PunchOut Hours
$MinutesOut = $ls[$j][5];     // PunchOut Minutes
$timeout = gmdate('H:i:s', $HoursOut*60*60+$MinutesOut*60);

$time1 = new DateTime($timein);
$time2 = new DateTime($timeout);
$interval = $time1->diff($time2);           
$interval->format('%H:%i');

但是現在我想放置一個條件,但條件不起作用:(我要使$ interval = 00:00,但如果條件不起作用,則此條件...)

if($timeout == "00:00:00") {$interval->format('%0:%0');}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM