Bonjour,
Voila je rencontre un petit problème avec mon code. je n'arrive pas à afficher l'heure que je mets dans ma Views. J'ai toujours 00:00:00 dans ma base de donnée.
voilà mon code dans ma views :
<td id="evenement">
<label for="" >Heure :</label> <br>
<input align="center" type="time" id='timepicker' name="heureEvenement" value="<?php if(isset($heureEvenement)) { echo $heureEvenement; } ?>" />
</td>
voici le code PHP que je mets en place pour que çà marche :
if(isset($_POST['formcreerevenement'])){
$evenement = htmlspecialchars($_POST['evenement']);
$date = date('Y-m-d', strtotime($_POST['dateEvenement']));
$heure = time('H:i', strtotime($_POST['heureEvenement']));
$salle = htmlspecialchars($_POST['salleEvenement']);
if(!empty($_POST['evenement']) AND !empty($_POST['dateEvenement']) AND !empty($_POST['heureEvenement']) AND !empty($_POST['salleEvenement'])) {
$evenementlength = strlen($evenement);
$salleEvenementlength = strlen($salle);
if($evenementlength <= 255){
if($salleEvenementlength <= 255){
$insertevent = $bdd->prepare("INSERT INTO evenement(nom, date, heure, salle) VALUE(?, ?, ?, ?)");
$insertevent->execute(array($evenement, $date, $heure, $salle));
}else{
$erreur = "Votre salle ne doit pas dépasser 255 caractères !";
}
}else{
$erreur = "Votre évènement ne peut pas dépasser 255 caractères !";
}
}else {
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
J'utilise aussi un code Jquery pour le format des dates et des heures :
<script>
$('#datepicker').datetimepicker({
dateFormat : 'yy-mm-dd',
minDate : 0,
maxDate : '2036-11-30'
timepicker : false,
});
$('#timepicker').datetimepicker({
format: 'H:i'
datepicker: false,
});
</script>
Dans ma base de donnée, heure est de type : time.
Pouvez-vous me dire là où je me trompe ?
merci
Bonjour,
Ce n'est pas parce que tu veux une heure qu'il faut utiliser la fonction time,
la fonction time ne prend pas de paramètre et te retourne le timestamp actuel, rien d'autre.
Pour avoir l'heure d'une date, c'est la fonction date :
$heure = date('H:i', strtotime($_POST['heureEvenement']));
Par exemple :
if(isset($_POST['formcreerevenement'])) {
$evenement = htmlspecialchars($_POST['evenement']);
$date = date('Y-m-d', strtotime($_POST['dateEvenement']));
var_dump($_POST['heureEvenement']); // 1er debug pour voir ce que tu reçois exactement
$heure = time('H:i', strtotime($_POST['heureEvenement']));
var_dump($heure); // second debug pour vérifier si ta manipulation est correcte, puis pour stopper le code restant :
die(); /* ou */ exit();
// etc ...
}
alors, j'ai fait ce que vous m'avez dit et j'ai fait :
var_dump($_POST['heureEvenement']);
et je reçois : string(5) "23:01"
$heure = time('H:i', strtotime($_POST['heureEvenement']));
var_dump($heure);
et je reçois : int(1503325825), Pouvez-vous me dire à quoi corresponds ce chiffre, et dans ma base de donnée çà se transforme en : 838:59:59, que dois-je faire ?