Rentrer une date et la comparer

Eléphanteau du PHP | 13 Messages

21 mars 2017, 14:03

Salut,
pour que l'utilisateur puisse rentrer une date, j'ai fais de cette façon là avec plusieurs input text (attention au yeux) :
<form action="#" method="post">
<input type="text" name="year" value=""/>
-
<input type="text" name="month" value=""/>
-
<input type="text" name="day" value=""/>
<input type="text" name="hour" value=""/>
:
<input type="text" name="minute" value=""/><br/>
<input type="submit" value="submit"><br/>

$a = $_POST['year'];
$b = $_POST['month'];
$c = $_POST['day'];
$d = $_POST['hour'];
$e = $_POST['minute'];

$a .= "-".$b."-".$c." ".$d.":".$e;

$date1 = date($a);
$date2 = date("d-m-Y H:i");

if($date1 < $date2) echo "délai dépassé";
J'insère aussi $a dans une colonne varchar d'une db.
Ça fonctionne mais je crois bien que la façon dont je l'ai fait n'est pas la bonne et qu'il y a plus "pratique", non ? Surtout que pour l'utilisateur, des input text comme ça c'est pas très interactif...

J'ai vu que l'input date est vraiment pas mal mais ça ne fonctionne pas sur firefox...

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mars 2017, 15:35

salut,

avec html5 y a plus simple ;) => https://www.alsacreations.com/tuto/lire ... local.html
avec ce champs tu va pouvoir donner un truc sympa aux gens qui ont des navigateur "recent" et pour les autres tu indiques le format attendus. de toute façon tu le vérifie coté serveur.

pour la différence tu peux utiliser date_diff (qui utilise la classe DateTime

pour vérifier la dispo des champs sur les navigateurs => http://caniuse.com/#search=datetime

du coup je te conseil deux champs une pour la date et un pour l'heure.


pour tester
<?php
xdebug_var_dump($_POST);
?>
<form method="post">
  <input type="date" name="d"/>
  <input type="time" name="h"/>
  <br />
  <input type="submit" value="clic me baby"/>
</form>
@+
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mars 2017, 15:46

et j'ai oublié, tu peux aussi utiliser un date picker JS (jQuery ou autre)
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

21 mars 2017, 17:01

Je te remercie, bon bah je crois que je vais me forcer à utiliser chrome pour finir le projet... Je vais regarder du côté de date picker mais je n'ai jamais utilisé jQuery.

Je viens de me rendre compte que mon truc fonctionne pas au fait, puisque je dois pouvoir sélectionner l'année, le mois et le jour dans ma db. Hors je stocke ça dans un string, du coup je retourne tout ou rien.
Je crois qu'une résolution à ça serait de stocker non pas dans un varchar mais plutôt "date" ? De là je pense pouvoir récupérer seulement l'année par exemple.

Je testerai ça demain, merci;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mars 2017, 17:18

oui type date + les fonctions sql year, month, day ...

@+
Il en faut peu pour être heureux ......