【问题标题】:PHP Parse Date From StringPHP 从字符串中解析日期
【发布时间】:2013-07-06 15:04:45
【问题描述】:

我从 API 收到一个日期字符串,像这样响应

“2013-07-09T04:58:23.075Z”

我如何解析那个字符串,比如将格式更改为

2013-07-09 [04:58:23]

时间确实不是我的当地时间,我认为.075Z应该改​​变一些时间。

提前感谢您的帮助。

【问题讨论】:

    标签: php string date timezone format


    【解决方案1】:

    您可以使用DateTime object 来做到这一点。

    $Date = new DateTime('2013-07-09T04:58:23.075Z'); //create dateTime object
    $Date->setTimezone(new DateTimeZone('Europe/Amsterdam')); //set the timezone
    
    echo $Date->format('d/m/Y H:i'); 
    

    【讨论】:

    • 它似乎有效。它知道是因为 75Z 意味着距离 UTC 或 GMT 时间有 75 分钟?
    • @Ardeus .075 是 75 微秒,Z(发音为 Zulu)表示时间为 UTC。
    • .075 是毫秒(不是微秒)。
    【解决方案2】:

    试试这个

    $date = '2013-07-09T04:58:23.075Z';
    $seconds = strtotime($date);
    
    echo date('Y-m-d [H:i:s]', $seconds);
    

    希望对你有帮助!

    【讨论】:

    • 那么时区呢?
    【解决方案3】:
    $time = "2013-07-09T04:58:23.075Z";
    $exp = explode('T',$time);
    echo $exp[0] .' [' .substr($exp[1], 0, -5) . ']';
    

    我就是这样用的。

    【讨论】:

      【解决方案4】:

      @奔驰

      只需在下面添加:

      date_default_timezone_set('澳大利亚/布里斯班'); echo date('d/m/Y H:i', strtotime('2013-07-09T04:58:23.075Z'));

      完成了!希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        • 2019-02-12
        相关资源
        最近更新 更多