我的日期格式为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
提前致谢。
答案 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');
答案 2 :(得分:0)
strtotime不支持该日期格式
但是用空格替换InvoiceNumber
FCI150142
是一种受支持的格式。
/
你得到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