1

PHP 入力から取得したデータベースに日付を挿入しようとしています。値を挿入するために使用しているコードは次のようになります

$length = strrpos($fristdatum, " ");
$newDate = explode(".", substr($fristdatum, $length));
$fristdatum = $newDate[2] . "-" . $newDate[1] . "-" . $newDate[0];

取得14.12.2012した日付を入力するとしますが、MySQL DB に挿入するとすぐにアイデアが浮かびますか?echo $fristdatum2012-12-142014.12.20

列タイプは日付です。インサートはこんな感じ

mysql_query("INSERT INTO sch_anschreiben (date)values('$fristdatum'))

より多くの値がありますが、それは問題ではないと思います

前もって感謝します!

このようにフォーマットした後$fristdatum、配列で使用したことを理解した助けてくれてありがとうstr_replace

$patern = array("[Date]")
$words=array($fristdatum)
$content = str_replace($patern, $words, $content);

その後、DBに挿入した後、後でフォーマットするように変更しましたが、str_replace問題なく動作するようです。どなたか理由を教えていただけると助かります(^^)

4

3 に答える 3

1

DateTime::createFromFormatPHP 5.3以降を使用している場合は、分解してハードコードされた変換の代わりに使用することをお勧めします。

$date = DateTime::createFromFormat('d. m. Y',$fristdatum);
echo $date->format('Y-m-d');//echoes 2012-12-14

日付を正しい方法で登録するようにスクリプトを修正したので、データベースが適切であることを確認する必要があります。このリクエストを使用できます:

UPDATE yourtable SET yourdate=CONCAT(MONTH(yourdate),'-',DAY(yourdate),'-',YEAR(yourdate)) WHERE MONTH(yourdate) > 12
于 2012-12-11T10:09:59.997 に答える
0

DATE型は、日付部分はあるが時間部分はない値に使用されます。MySQLは、DATE値を「YYYY-MM-DD」形式で取得して表示します。サポートされる範囲は「1000-01-01」から「9999-12-31」です。

DATETIMEタイプは、日付と時刻の両方の部分を含む値に使用されます。MySQLは、DATETIME値を「YYYY-MM-DDHH:MM:SS」形式で取得して表示します。サポートされる範囲は、「1000-01-0100:00:00」から「9999-12-3123:59:59」です。

TIMESTAMPデータ型は、日付と時刻の両方の部分を含む値に使用されます。TIMESTAMPの範囲は「1970-01-0100:00:01」UTCから「2038-01-1903:14:07」UTCです。

したがって、のように格納する場合14-12-2012は、そのデータ型をとして使用しvarcharます。

于 2012-12-11T10:00:44.197 に答える
0

YMD形式に変換します。2012-12-14 をデータベースに直接配置する必要があります。

于 2012-12-11T10:08:06.647 に答える