2011-08-14 4 views
0

Supposons que j'ajoute la date/heure dans une base de données mysql et que j'ai le bloc de code suivant (petit pour une fois).Html form - php - champ de date mysql?

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

Voici la forme que les prises qui

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

J'ai essayé d'entrer « 2011-08-14 19:15:25 » et il est revenu tous les 0, quelqu'un peut me aider avec ça? Merci beaucoup!

Répondre

1

Vous feriez probablement mieux d'utiliser strtotime() pour valider la date/heure soumise, si c'est un champ de saisie de date libre en particulier. Dans le cas contraire, quelqu'un peut manquer - entrer une date/heure et, de façon inattendue, utiliser la date/heure actuelle à la place.

$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

Si vous utilisez des menus déroulants, et le temps n'a pas été un facteur, vous pouvez également utiliser checkdate(), bien que de votre exemple, il semble que vous avez besoin du temps.

Cependant, ce que vous avez posté devrait fonctionner. Voici un exemple en utilisant votre date que vous avez fourni:

http://codepad.org/BK1yqyMT

(Et ici sans fixer le bloc if: http://codepad.org/p3CfmOJK)

+0

Impressionnant, je ne savais même pas que cela existait! – HunderingThooves

+0

Je fais du PHP depuis sept ans, et je rencontre encore des fonctions/capacités dont je n'étais pas conscient et qui existent depuis longtemps. –

+0

Remarque, je viens de réaliser quelque chose ... Vous devez tester pour la validation en plus de la vérification de la date quand il est fourni. Désolé pour ça. Voir ma dernière édition. –