我有一個範圍從0-23的數字數組,每個數字表示從午夜到晚上11點的時間。它按鍵的值排序。在PHP中將數字(0-23)轉換爲時間(AM/PM)格式
22 => int 8
3 => int 7
5 => int 6
等。如果,例如,該陣列的第一個元素的密鑰是22我想變量$第一是「10PM」。
當然,我可以寫:
if(key($array)=='22'){
$first = '10PM';
}
,但我不得不這樣做23次,每次關鍵...有沒有更簡單的方法?
我有一個範圍從0-23的數字數組,每個數字表示從午夜到晚上11點的時間。它按鍵的值排序。在PHP中將數字(0-23)轉換爲時間(AM/PM)格式
22 => int 8
3 => int 7
5 => int 6
等。如果,例如,該陣列的第一個元素的密鑰是22我想變量$第一是「10PM」。
當然,我可以寫:
if(key($array)=='22'){
$first = '10PM';
}
,但我不得不這樣做23次,每次關鍵...有沒有更簡單的方法?
你可以用下面的代碼實現這一點。
$array = array(
22 => 8,
3 => 7,
5 => 6
);
foreach($array as $key => $val){
if(($key/12) <1){
$time = $key."AM";
} else if(($key/12) == 1){
$time = "12"."PM";
} else{
$time = ($key%12)."PM";
}
echo $time;
}
@Chayan你沒有做出任何顯着的修改。 – sandeepsure
@hook我可以知道拒絕答案的理由嗎? – sandeepsure
$array = array(
22 => 8,
3 => 7,
5 => 6
);
$i = 1;
foreach ($array $key=>$val)
{
${'time_' . $i} = date("HA", strtotime($key . ":00:00"));
$i++;
}
//Now check echo $time_1;
您也可以通過您的值的函數像波紋管:
<?php
$array = array(22 => 8, 3 => 7, 5 => 6);
foreach ($array as $key => $value) {
echo numbers_to_time($key) . "<br>";
}
function numbers_to_time($number) {
$number = intval($number);
if ($number < 0 || $number > 23) {
return "Number should be between 1 to 23";
}
if ($number == 0) {
return "12AM";
} elseif ($number == 12) {
return $number . "PM";
} elseif($number > 0 && $number < 12) {
return $number ."AM";
} elseif ($number > 12 && $number <= 23) {
$temp = $number - 12;
return $temp . "PM";
}
}
?>
爲什麼使用數組? 「22」從哪裏來?你沒有使用日期或時間戳嗎?退房http://stackoverflow.com/questions/3404699/how-to-get-am-pm-from-a-datetime-in-php – Naruto
試試這個--http://www.php-mysql-tutorial.com /wikis/php-tutorial/php-12-24-hour-time-converter-part-1.aspx – marmeladze
感謝大家,「22」來自Facebook Insights數據陣列給我的一個自動化陣列,用於「粉絲在線」。他們列出了在線人數,以及在我的例子中的那些數字在什麼時間。 – Hook