代码之家  ›  专栏  ›  技术社区  ›  Salman Arshad

使用DateTime::createFromFormat时忽略时间部分

  •  0
  • Salman Arshad  · 技术社区  · 7 年前

    我有两种格式的数据库数据:

    $tests[] = "2018-01-01";
    $tests[] = "2018-01-01 12:34:56.789";
    

    DateTime::createFromFormat 忽略时间部分?我想用最少的代码来处理这两种情况。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Salman Arshad    7 年前

    您可以使用以下格式:

    "!Y-m-d+"
    

    echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01")             ->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
    echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01 12:34:56.789")->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
    
    • ! 字符将其左侧的所有日期和时间组件重置为1970-01-01 00:00:00。没有它,格式中未指定的组件将从当前时间设置为组件。
    • + 字符指示分析器忽略日期字符串中的尾随字符。