datetime::uu construct():无法分析位置0(/)处的时间字符串(//):意外字符

nukf8bse  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(271)

无法使用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>
pbwdgjma

pbwdgjma1#

默认情况下,php不能解析包含“/”的日期。使用datetime::createfromformat函数。

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

x6yk4ghg2#

您确定正在获取数据吗?你的 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 问题,你可以使用 DateTime 直接按照chayan的建议上课:

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

相关问题