2011-09-03 34 views
1

在這裏感覺有點愚蠢,但我處於一個鬆散的結局,以什麼搜索給我這個答案,所以這裏是問題:在PHP中格式化數字(字符串)到時間

我有一個數字,如:

理想我想這(使用PHP)格式化爲上午8:00 - 這可能嗎?

希望能對你有所幫助,

湯姆

+0

你的意思是你有一個字符串 「0800」?你怎麼知道它是上午還是下午?它是24小時制嗎? – JJJ

+0

是的,這是正確的。這是24小時格式的字符串,所以我知道它是我的。 – Tisch

回答

3

什麼可以用的是date()功能,代碼如下:

date("h:ia",strtotime("0800")) 

更多信息可以在這裏找到:http://php.net/manual/en/function.date.php

而且也有一個例子會很棒:http://codepad.org/uUuoZK1A

+0

謝謝你,我太親近了!你知道我怎樣才能得到「am」和「pm」以及 – Tisch

+0

最後去了日期(「H:ia」,strtotime(「0800」)); - 謝謝大家 – Tisch

5
echo DateTime::createFromFormat("Hi", "0800")->format("h:ia"); 

有關詳細信息(包括有關佔位符的信息),請參閱http://php.net/manual/en/datetime.createfromformat.php

+0

真棒解決方案,不幸的是我只在5.2.17上 – Tisch

+0

你知道這個方法比Date()函數有什麼優點嗎? – Tarik

+0

在這種情況下,沒有太大的區別,但是特別是如果您使用時區或時間間隔,DateTime類在我看來更加「更乾淨」,更易於使用。相關文檔:http://www.php.net/manual/en/book.datetime.php – monochrome

2

這會工作

<?php 
    $input = "0800"; 
    $hours = substr($input, 2); 
    $mins = substr($input, -2); 
    if($hours < 12) 
    { 
    $output = $hours.":".$mins." am"; 
    } 
    else 
    { 
    $output = ($hours-12).":".$mins." pm"; 
    } 
    echo $output; 
    ?> 
+0

日期(「H:ia」,strtotime(「0800」))是一個更加優雅的解決方案。無論如何謝謝 – Tisch

+0

這麼多代碼:)更好的使用'date()'內置函數。 – Tarik

0

希望這有助於:)

$time = DateTime::createFromFormat('Hi', '0800'); 
echo $time->format('h:ia'); 
+0

再次,不幸的是,只有在5.2.17 - 該死的媒體寺! – Tisch