php中的日期格式更改

时间:2018-05-03 05:13:49

标签: php

我的日期格式为12 / May / 2018。我需要把它改成2018-12-05。请帮帮我。

SELECT
  CONCAT('{"data": [', GROUP_CONCAT(`json`), ']}') `json`
FROM (
  SELECT
    JSON_OBJECT(
      'TournamentId', `t`.`TournamentId`,
      'tourName', `t`.`Name`,
      'users', JSON_ARRAYAGG(
                 JSON_OBJECT(
                   'UserId', `u`.`UserId`,
                   'userName', `u`.`Name`
                 )
               )
    ) `json`
  FROM
    `Tournament_Users` `tu`
    LEFT JOIN
      `Tournaments` `t` ON `tu`.`Tournament_Id` = `t`.`TournamentId`
    LEFT JOIN
      `Users` `u` ON `u`.`UserId` = `tu`.`User_Id`
  GROUP BY `t`.`TournamentId`, `t`.`Name`
  ORDER BY `t`.`TournamentId`
) `der`;

输出:1969-12-31

提前致谢。

4 个答案:

答案 0 :(得分:1)

使用此代码:

lsoda--  warning..internal t (=r1) and h (=r2) are
   such that in the machine, t + h = t on the next step  
   (h = step size). solver will continue anyway
  in above,  r1 =  0.1243782486482D+01   r2 =  0.8727680448722D-16

答案 1 :(得分:1)

无需任何手动解析 您应该使用PHP的DateTime类,它比旧的date()函数更灵活。

这是一个做你想做的事的例子:

$date = DateTime::createFromFormat('d/M/Y', '12/May/2018');
echo $date->format('Y-m-d');

演示:https://3v4l.org/Y5HF0

答案 2 :(得分:0)

strtotime不支持该日期格式 但是用空格替换InvoiceNumber FCI150142 是一种受支持的格式。

/

https://3v4l.org/K8cOF

你得到1969-12-31的原因是因为UNIX 0是1970-01-01 00:00:00 当strtotime无法解析日期时,它会返回$originalDate = "12/May/2018"; $newDate = date("Y-m-d", strtotime(str_replace("/", " " ,$originalDate))); echo $newDate; 可以将False转换为false 这意味着日期在UNIX时间0(1970年)将其读作“Y-m-d”,并且由于您的时区,您将获得1969-12-31。

答案 3 :(得分:0)

试试这个,

$originalDate = "12/May/2018";
$newDate = date_format(date_create_from_format("j/F/Y", $originalDate), 'Y-m-d');
echo $newDate; 

注意:如果您的日期格式为01,请使用d,如果1使用j

输出结果为:2018-05-12