2014-02-24 28 views
0

我目前使用的是date('H', strtotime($_GET['h'].' +1 hour'))$_GET['h']包含我從URL獲得的小時數,即20如20:00),但它僅在打印21時打印01。我想得到這個小時,並且增加一個小時,所以20將是21,等等。從_GET加1小時

我在這裏做錯了什麼?

+0

更好的方法,但:http://ideone.com/1ICO8a == 21 – AbraCadaver

+0

謝謝,但約翰的答案是更好:) – Erik

+0

我不是一個答案,這是你的問題和代碼!所以我沒有看到你如何從你的代碼和輸入中獲得'01'。但同意約翰的代碼;) – AbraCadaver

回答

2

像這樣的東西應該工作:

$time = DateTime::createFromFormat('H:i', '20:00'); 
$time->modify('+1 hour'); 
echo $time->format('H:i'); 

See it in action

+0

非常感謝!這樣做:)我會盡快接受你的答案。 – Erik

+1

+1使用DateTime,應該用於幾乎所有PHP中基本數據操作的例子。 –

0

您可以添加秒的時間戳來做到這一點:

date('H',mktime($_GET['h']) + 60 * 60) 

由於時間戳必須在幾秒鐘內,第一60 * 60以秒爲單位獲得小時。第二個爲時間戳添加一小時的時間。

+0

這種方法避免了實例化一個日期對象只是爲了獲得小時的開銷,但犧牲了可讀性。 – lwitzel

+0

謝謝,但你的代碼打印只有'02'不管什麼時間設置爲:/抱歉我的英文不好 – Erik

+0

你是對的,strtotime在那裏不起作用。更新了使用mktime()的答案。 – lwitzel