【问题标题】:PHP turn PM and AM into 24 hourPHP 将 PM 和 AM 变成 24 小时
【发布时间】:2012-06-09 23:33:19
【问题描述】:

所以我需要在 PHP 中将 pm/am 转换为 24 小时制,我们使用 Yahoo API 来获取货币汇率,但他们似乎在 am/pm 之前给了我们。

我认为 date 可能有效,但是当我读入该函数时,它无法将 pm 变成 24 小时。

5: 55pm

【问题讨论】:

    标签: php date time


    【解决方案1】:

    使用datestrtotime 的问题是您可能需要担心时区...您从雅虎获得的信息可能与您服务器的时区不一致...这是一个正则表达式方法:

    $time = preg_replace_callback('~^([^:]+)(.*(a|p)m)$~',create_function('$m','return ($m[3]=="p")?(($m[1]+12).$m[2]):$m[0];'),$time);
    

    【讨论】:

    • strtotime 和 date 应该是安全的,除非在调用 strtotime 和 date 之间时区发生变化。
    【解决方案2】:

    如果雅虎! API 确实没有提供在 24 小时内返回时间的方法,您可以按照 sachleen 的建议进行操作,或者使用正则表达式。

    (\d{1,2}): (\d{2})(am|pm)
    

    如果是“下午”,则只需将小时数加 12。

    【讨论】:

      【解决方案3】:

      这应该可行

      date("H:i", strtotime("5:55 pm"));
      

      如果你想走另一条路,

      date("g:i a", strtotime("17:55"));
      

      【讨论】:

        猜你喜欢
        • 2014-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        相关资源
        最近更新 更多