手動で日付を入力する必要があるphpフォームがあります。日付をY/M / DIと入力しても、問題ありません。しかし、日付をd / m / yと入力すると、データベースに0000-00-00として保存されます。
$TransactionDate= $row['DealDate'];
TransactionDate=私のフィールド名DealDate=私の列名
私は助けが必要です!
このコードを試してください
$date = mysql_real_escape_string($_POST['DealDate']);
MySQL カラムが DATE タイプの場合:
$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
MySQL カラムが DATETIME タイプの場合:
$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
日付区切り記号が - ダッシュでは機能しないため、strototime() は使用できません - 区切り記号は、減算を試みます。
その場合は正規表現を使用してください
$date = mysql_real_escape_string($_POST['DealDate']);
$date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4', $date);
echo $date;
MySQLで唯一受け入れられる直接使用の日付形式はYYYY-mm-dd hh:mm:ss
です。他のものを挿入すると、ほとんどの場合、0000-00-00のデフォルトの日付値が挿入されます。
日付文字列が他の形式の場合は、最初にMySQLで受け入れ可能な形式にマッサージする必要があります。