【问题标题】:How to trim the timestamp (i know, been asked before....)如何修剪时间戳(我知道,之前被问过......)
【发布时间】:2018-02-18 16:12:49
【问题描述】:

我的服务器响应日期/时间戳是 XML 格式,如下所示:

<au_updated_date>2018-02-04T13:32:58</au_updated_date>

我想要的只是2018-02-04

试过了,但什么也没显示:

[date_format("au_updated_date","Y-m-d")]

还尝试了一些修剪、字符串和子字符串函数,但无济于事:(

赞成?

编辑:

还是不行:(

也许这可能有用:

$response = curl_exec($ch);
$data = json_decode($response,true);

然后循环通过响应并显示在 html 表格中。

echo '<td align=left style="text-align:left">', ($data["results"][$i]["card"]["au_updated_date"]), '</td>';

【问题讨论】:

    标签: php datetime timestamp trim


    【解决方案1】:

    你可以像这样解析和格式化它:

    date('Y-m-d', strtotime('2018-02-04T13:32:58'))
    

    【讨论】:

    • 看起来 OP 需要一个正则表达式来提取与 strtotime 一起使用的实际值
    • @Martin 为什么需要正则表达式?
    • &lt;..&gt; 部分称为 HTML 或 XML,并被原生 php 函数 strip_tags() 删除。 @马丁
    • @Andreas 取决于输入数据的可靠性,我可能不建议 strip_tags,因为它是 does not actually validate the string,因此部分或损坏的标签可能会导致删除比预期更多的数据。
    【解决方案2】:

    您可以使用 strip_tags 删除 XML。
    然后使用strtotime获取字符串的Unix时间。
    然后使用日期来解析它以适应它。

    $str = "<au_updated_date>2018-02-04T13:32:58</au_updated_date>";
    
    Echo date("Y-m-d", strtotime(strip_tags($str)));
    

    【讨论】:

      【解决方案3】:

      天哪,我明白了!

      只用了大约 4 个小时就搞定了,哈哈

      而不是这个:

      $au_dates = $au_record->getElementsByTagName( "au_updated_date" );
      $au_date = $au_dates->item(0)->nodeValue;
      

      我这样做了:

      $au_dates = $au_record->getElementsByTagName( "au_updated_date" );
      $au_date = $au_dates->item(0)->nodeValue;
      $new_date = date("Y-m-d", strtotime($au_date));
      

      谢谢大家,尤其是安德烈亚斯。

      【讨论】:

        猜你喜欢
        • 2012-03-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-20
        • 2012-05-10
        • 1970-01-01
        • 2016-05-13
        • 1970-01-01
        • 2010-12-08
        相关资源
        最近更新 更多