2013-04-16 78 views
2

這看起來應該非常簡單,但我找不到需要的時間格式。將int 60轉換爲60分鐘的時間值

來自數據庫的值爲240.這意味着240分鐘。我如何將它存儲在一個php變量中,以便php知道它是幾分鐘。那麼在後面的腳本中,我可以將它添加到HH:MM值?

(我已編輯下面的代碼來反映問題的答案之一)

$startTime = new datetime($row['startTime']); #08:07:00.0000000 
$endTime = new datetime($row['endTime']);  #12:10:00.0000000 
$everyMinutes = new dateInterval('P'.$row['everyMinutes'].'M'); #60? 
$updatedTime = $startTime->add($everyMinutes); # this should read 09:07:00.0000000 

進入$row日期來自SQL。 startTime和endTime都要time(7)數據類型

| taskID | startTime  |  endTime  | freq | 
|________|__________________|__________________|______| 
| 1 | 08:07:00.0000000 | 12:10:00.0000000 | 60 | 
| 2 | 08:10:00.0000000 | 17:40:00.0000000 | 30 | 
| 3 | 08:40:00.0000000 | 14:49:00.0000000 | 60 | 
| 4 | 08:43:00.0000000 | 14:49:00.0000000 | 60 | 
| 5 | 09:05:00.0000000 | 15:05:00.0000000 | 180 | 
| 6 | 10:00:00.0000000 | 22:00:00.0000000 | 5 | 

有了這個代碼,我得到的兩個問題之一。隨着new datetime()拋出的錯誤是Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object given'

沒有new datetime()拋出的錯誤是Notice: Object of class DateTime could not be converted to int

回答

4

你應該閱讀this page

$date = new DateTime($row['startTime']); 
$myInterval = new DateInterval('P'.$row['everyMinutes'].'M'); 
$date->add($myInterval); 
echo $date->format('Y-m-d') . "\n"; 
+0

感謝您的鏈接。它確實幫助我調試了一些問題。但是現在我在另一個路障。對上述錯誤有任何想法? – mhopkins321

+0

據我可以看到你餵養一些奇怪的數據類型到構造中。你應該'vardump' $行來檢查那裏有什麼數據,因爲它表示'$ row ['startTime']'是一個對象而不是一個字符串。 –

+0

當我查詢數據庫時,我可以將這些值轉換爲不同的值? – mhopkins321

0

使用此功能

function convertToHoursMins($time, $format = '%d:%d') { 
settype($time, 'integer'); 
if ($time < 1) { 
    return; 
} 
$hours = floor($time/60); 
$minutes = $time%60; 
return sprintf($format, $hours, $minutes); 
} 

,並通過你的時間在這個喜歡

convertToHoursMins(240); 
相關問題