簡體   English   中英

DateTime::__construct(): 無法解析位置 0 (/) 處的時間字符串 (//):意外字符

[英]DateTime::__construct(): Failed to parse time string (//) at position 0 (/): Unexpected character

無法使用 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>

你確定你正在獲取數據? 您的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');

默認情況下,PHP 無法解析包含“/”的日期。 使用DateTime::createFromFormat函數。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM