【问题标题】:Convert Long Date / Time to user friendly one PHP将长日期/时间转换为用户友好的 PHP
【发布时间】:2011-01-19 03:36:10
【问题描述】:

我有一个 api 以这种格式返回日期

2010-10-22 07:00:00 等/格林威治标准时间

我该如何改变它,所以它是

2010 年 10 月 22 日

使用php

谢谢! :D

【问题讨论】:

    标签: php datetime date


    【解决方案1】:
    print strftime('%B %e, %Y',strtotime('2010-10-22 07:00:00 Etc/GMT'));
    

    输出:“2010 年 10 月 22 日”

    怎么样? :)

    【讨论】:

      【解决方案2】:

      你需要使用这个函数:

      1. strtotime() 获取 unixtimestamp,
      2. strftime() 用于输出格式良好的时间表达式。

      【讨论】:

        【解决方案3】:
        1. 使用strptime解析日期
        2. 使用mktime将其转换为时间戳
        3. 使用strftime格式化时间戳

        【讨论】:

        • strptime() 依赖于系统。因此,date_parse_from_format() 不推荐用于 PHP 5.3.0 及更高版本。 (不幸的是,DateTime class 不遵守语言环境。)但是,如果您知道输入字符串采用可识别的格式(例如 ISO 8601),simon 的strtotime() 解决方案会更有效。所以对两者都 +1。
        【解决方案4】:
        echo date('F d, Y', strtotime($dt));
        

        【讨论】:

        • 我相信 Etc/GMT 导致了这个问题,因为 strtotime 总是什么也没返回。
        • @Belgin Fish:嗯? 1) 它对我有用 2) 你检查了 相同的 答案,给定 稍后 我的答案。
        • @Belgin Fish:你知道$dt 变量存储你的日期字符串了吗?!?!?!?
        【解决方案5】:

        这应该可行:

        date("F j, Y", strtotime($date))
        

        【讨论】:

        • 我相信 Etc/GMT 导致了这个问题,因为 strtotime 总是什么也没返回。
        猜你喜欢
        • 2013-02-07
        • 1970-01-01
        • 1970-01-01
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多