我有一个范围从 0 到 23 的数字数组,每个数字代表从午夜到晚上 11 点的时间。它按键的值降序排列。
22 => int 8 3 => int 7 5 => int 6
等等。例如,如果数组的第一个元素的键是 22,我希望变量 $first 为“10PM”。
当然,我可以写:
if(key($array)=='22'){ $first = '10PM'; }
但我必须为每个键执行 23 次...有更简单的方法吗?
P粉3532821232023-12-26 16:57:54
刚才复制错了
<?php // 原始数组 $array = [ 22 => 8, 3 => 7, 5 => 6 ]; // 转换后的时间数组 $times = []; foreach ($array as $key => $value) { // 将键值(小时)转换为12小时制的时间格式 $hour = $key % 12; if ($hour == 0) { $hour = 12; } $times[$key] = $hour . ($key >= 12 ? 'PM' : 'AM'); } // 输出转换后的时间数组 foreach ($times as $timeKey => $time) { echo "键值" . $timeKey . "对应的输出为:" . $time . "\n"; } ?>
P粉3532821232023-12-26 16:53:20
我理解的
<?php // 原始数组 $array = [ 22 => 8, 3 => 7, 5 => 6 ]; // 转换后的时间数组 $times = []; foreach ($array as $key => $value) { // 将键值(小时)转换为24小时制的时间格式 $hour = $key % 12; if ($hour == 0) { $hour = 12; } $times[$key] = $hour . 'PM'; } // 输出转换后的时间数组 foreach ($times as $timeKey => $time) { echo "键值" . $timeKey . "对应的输出为:" . $time . "\n"; } ?>
P粉2760641782023-12-25 11:32:18
这是代码
$hrs = 15; echo date("h a", strtotime("00-00-00 $hrs:00:00"));