2011-08-14 13 views
0

私は、mysqlデータベースに日付/時刻を追加して、次の(一度は小さい)コードのチャンクを持っていると仮定します。以下は、私が「2011年8月14日午後07時15分25秒」を入力しようとしましたし、それがすべて0を返した、誰かが私を助けることができるHTMLフォーム - PHP - MySQLの日付フィールド?

$radate=$_POST['date']; 
if ($radate=="") 
$radate = date('Y-m-d H:i:s'); 
else {} 

というキャッチ形式で

<input type="text" name="date">Leave time null for current<br /> 
<input type="Submit" name="submit" value="submit"> 

これで?ありがとう、トン!

答えて

1

特に、フリーフォームの日付入力フィールドの場合は、strtotime()を使用して、提出された日付/時刻を検証する方がよいでしょう。それ以外の場合は、誰かが日付/時刻を入力するのを間違えてしまい、代わりに予期せず現在の日付/時刻を使用することがあります。

$radate_valid = false; 
$radate = $_POST['date']; 
if (!$radate) 
    $radate = date('Y-m-d H:i:s'); 
if (strtotime($radate) === false) 
    $radate_valid = false; 
else 
    $radate_valid = true; 

// Somewhere else 
if ($radate_valid !== true) 
    /* Do something to warn the user. */ 

http://codepad.org/x2eZay0Q

あなたがドロップダウンを使用し、時間が要因ではなかった場合は、時間が必要なのですようなあなたの例から、それは見えますが、あなたはまた、checkdate()を使用することができます。

ただし、投稿した内容はうまくいくはずです。

http://codepad.org/BK1yqyMT

(そして、ここをifブロック固定せず::http://codepad.org/p3CfmOJKを)ここでは、提供するあなたの日付を使用した例である恐ろしい

+0

、私もこれが存在していたことを知りませんでした! – HunderingThooves

+0

私は7年間PHPをやってきましたが、私はまだそれが長い間存在していたことに気づいていなかった機能/機能を見つけました。 –

+0

私はちょっと気付いたことに注意してください...日付チェックに加えて、検証のためにテストする必要があります。申し訳ありません。私の最後の編集を参照してください。 –