代码之家  ›  专栏  ›  技术社区  ›  Josh Curren

设置日期格式时出现问题

  •  1
  • Josh Curren  · 技术社区  · 16 年前

    我正在尝试编写一个函数来为我格式化日期和时间。我有一个几乎相同的函数,它只格式化一个日期。这个功能很好用。我只是添加了一些代码来尝试让它格式化日期和时间。它应该返回类似“2009年5月18日9:50 pm”的内容,但我收到了以下警告:

    Warning: mktime() expects parameter 6 to be long, string given in
    public_html/include/functions.php on line 421
    

    这是我的代码:

    function dateTimeFormat($dateIn)
    {
       $x = explode(" ",$dateIn);
       $y = explode("-",$x[0]);
       $z = explode(":",$x[1]);
    
       $year = $y[0]; 
       $month = $y[1];
       $day = $y[2];
       $hour = $z[0];
       $min = $z[1];
    
       $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 
    
       return $dateOut;
    }
    

    它发出的声音也是错误的。它提出:

    December 31, 1969 07:00 PM
    

    但是数据库中的时间戳是

    2009-05-18 05:07:39
    
    1 回复  |  直到 9 年前
        1
  •  4
  •   hbw    16 年前

    PHP已经有了一个非常好的日期解析函数: strtotime() . 它返回一个Unix时间戳,您可以将其传递给 date() .

    换句话说,您的功能可以简化为:

    function dateTimeFormat($dateIn)
    {
        return date("F j, Y h:i A", strtotime($dateIn));
    }