首页  >  问答  >  正文

将数字(0-23)转换为 AM/PM 时间格式的 PHP 代码

我有一个范围从 0 到 23 的数字数组,每个数字代表从午夜到晚上 11 点的时间。它按键的值降序排列。

22 => int 8
3 => int 7
5 => int 6

等等。例如,如果数组的第一个元素的键是 22,我希望变量 $first 为“10PM”。

当然,我可以写:

if(key($array)=='22'){
    $first = '10PM';
}

但我必须为每个键执行 23 次...有更简单的方法吗?

P粉009828788P粉009828788323 天前468

全部回复(4)我来回复

  • P粉353282123

    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";
    }
    ?>

    回复
    0
  • P粉600402085

    P粉6004020852023-12-25 17:02:45

    雷雷

    回复
    0
  • P粉353282123

    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";
    }
    ?>

    回复
    0
  • P粉276064178

    P粉2760641782023-12-25 11:32:18

    这是代码

    $hrs = 15;
    echo date("h a", strtotime("00-00-00 $hrs:00:00"));

    回复
    0
  • 取消回复