代码之家  ›  专栏  ›  技术社区  ›  xkeshav

在PHP中,如何使用range()创建计时列表?

php
  •  2
  • xkeshav  · 技术社区  · 14 年前

    我想创建一个表,其中第一列的计时样式如下


    timing | user1 | user2 | user3
    -------------------------------
    9 AM   |       |       |
    10 AM  |       |       |
    .      |       |       |
    .      |       |       |
    .      |       |       |
    6 PM   |       |       |
    7 PM   |       |       |
    

    可以用吗 range() 对于创建时间列表,如果是,请告诉我,如果不是,则建议我更好的方法。

    更新: 当我使用 range(strtotime('9 AM'),strtotime('7 PM'),86400) 它返回bool(错误) 总是谢谢你。我申请错了吗?

    2 回复  |  直到 12 年前
        1
  •  2
  •   Gordon Haim Evgi    12 年前

    不能这么做 range 一个人,但你可以

    date_default_timezone_set('GMT');
    foreach(range(9,19) as $hour) {
        echo date('g A', $hour*3600);
    }
    

    这会给

    9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM 6 PM 7 PM
    

    如果你花一个小时来完成步骤而不是一天,你的方法也会奏效:

    range(strtotime('9 AM'), strtotime('7 PM'), 3600);
    

    但请记住,只需要在某个地方硬编码这些值的数组,而不是在每次需要时即时计算这些值,这样做要快得多。

    当然你也可以用 DateInterval . 看看stackoverflow的例子。

        2
  •  0
  •   Your Common Sense    14 年前

    我不知道在这里如何使用range()。
    我建议在循环中使用mktime+date,将时间增加1小时,并将其格式化为am pm格式。