DateTime :: __ construct():无法解析位置0(/)处的时间字符串(//):意外字符

时间:2018-09-30 16:36:45

标签: php mysql rest

无法使用php POST方法将日期传递给MySQL。出现标题中给出的错误。 这是我的代码。

<code>
date_default_timezone_set("Asia/Kolkata");
$dd = substr($dob,0,2)."/";
$mm = substr($dob,3,2)."/";
$yyyy = substr($dob,6,4);
$fd = $yyyy.$mm.$dd;
$date = new DateTime($fd);
$formDateConverted = $date->format('Y-m-d');
<code>

2 个答案:

答案 0 :(得分:1)

确定要获取数据吗?您的substr()必须返回空字符串。

您要在日期和月份中添加一个斜杠,并以错误的顺序将它们放回原处。只需使用固定的字符串运行代码:

$dob = 'dd/mm/yyyy';
$dd = substr($dob,0,2)."/";
$mm = substr($dob,3,2)."/";
$yyyy = substr($dob,6,4);
$fd = $yyyy.$mm.$dd;

var_dump($fd);

结果:

string(10) "yyyymm/dd/"

对我来说,$dob显然是空的,因为substr()产生的所有三个变量也都为空,除了您添加的斜杠(这是您从错误中得到的)之外。再次使用空变量运行代码,您将得到:string(2) "//"

一旦解决了$dob问题,就可以按照Chayan的建议直接使用DateTime类:

$date = DateTime::createFromFormat('d/m/Y', $dob);
echo $date->format('Y-m-d');

答案 1 :(得分:0)

默认情况下,PHP无法解析其中包含“ /”的日期。使用DateTime::createFromFormat函数。

A = N\A;