0

手動で日付を入力する必要があるphpフォームがあります。日付をY/M / DIと入力しても、問題ありません。しかし、日付をd / m / yと入力すると、データベースに0000-00-00として保存されます。

$TransactionDate= $row['DealDate'];

TransactionDate=私のフィールド名DealDate=私の列名

私は助けが必要です!

4

2 に答える 2

2

このコードを試してください

$date = mysql_real_escape_string($_POST['DealDate']);
  1. MySQL カラムが DATE タイプの場合:

    $date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
    
  2. 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;
于 2012-04-05T04:33:32.417 に答える
1

MySQLで唯一受け入れられる直接使用の日付形式はYYYY-mm-dd hh:mm:ssです。他のものを挿入すると、ほとんどの場合、0000-00-00のデフォルトの日付値が挿入されます。

日付文字列が他の形式の場合は、最初にMySQLで受け入れ可能な形式にマッサージする必要があります。

于 2012-04-05T04:03:58.403 に答える