代码之家  ›  专栏  ›  技术社区  ›  BENN1TH

D D/m/y转换为另一种格式PHP[重复]

  •  0
  • BENN1TH  · 技术社区  · 8 年前

    我有以下格式的外部来源的日期戳

    Tue 6/02/2018
    

    然而,当尝试将日期转换为Y-m-d for SQL格式时,使用以下公式,日期会发生偏移;

    date("Y-m-d H:i:s", strtotime('Tue 6/02/2018');
    //ends up being Y-d-m
    

    我已提前使用设置时区

    date_default_timezone_set('Australia/Brisbane'); 
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Syscall - leaving SO... Juhzuri    8 年前

    strtotime() cannot parse 格式 "Tue 6/02/2018" 正确地你必须使用 DateTime::createFromFormat() 从格式解析。

    $time = 'Tue 6/02/2018';
    $date = DateTime::createFromFormat("D j/m/Y", $time) ;
    echo $date->format("Y-m-d H:i:s") ; // 2018-02-06 07:12:19
    

    您也可以使用 new DateTimeZone() 作为:

    $time = 'Tue 6/02/2018';
    $tz = new DateTimeZone('Australia/Brisbane');
    $date = DateTime::createFromFormat("D j/m/Y", $time, $tz) ;
    echo $date->format("Y-m-d H:i:s") ; // 2018-02-06 17:17:48
    
    推荐文章