2012-04-05 10 views
0

私は手動で日付を入力する必要があるPHPフォームを持っています。日付をY/M/Dと入力すると問題はありません。 しかし、私はそれは0000-00-00phpからmysqlへの日付フィールド0000-00-00

$TransactionDate= $row['DealDate']; 

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

としての私のデータベースに保存されているD/M/Yとして日付を入力する場合、私は助けを必要と!

答えて

1

MySQLの直接使用可能な日付形式はYYYY-mm-dd hh:mm:ssです。何かを挿入すると、ほとんどの場合、0000-00-00のデフォルトの日付値が挿入されます。

日付文字列が他の形式である場合は、まずそれをマッサージ可能な形式にマッサージする必要があります。

2

MySQLの列がDATE型の場合

$date = mysql_real_escape_string($_POST['DealDate']); 
  1. このコードを試してみてください:MySQLの列がDATETIME型の場合

    $date = date('Y-m-d', strtotime(str_replace('-', '/', $date))); 
    
  2. $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; 
を使用します
関連する問題