J'ai essayé ceci:
<input type="datetime-local" value="<?php echo $row['Time']; ?>" class="date" name="start" REQUIRED>
Comment puis-je définir la valeur de ce champ de saisie avec les données de la base de données?
Ça ne marche pas !!
Je dois aussi pouvoir éditer.
Ou dois-je utiliser un autre type d'entrée? $ row ['Time']; vient de la base de données!
Je ne sais pas exactement ce que contient $row['Time']
mais cela devrait être comme suit:
Définition
Une date-heure valide telle que définie dans RFC 3339 avec ces qualifications supplémentaires:
- les lettres littérales T et Z dans la syntaxe date/heure doivent toujours être en majuscules
- la production date-année complète est plutôt définie comme quatre chiffres ou plus représentant un nombre supérieur à 0
Exemples
- 1990-12-31T23: 59: 60Z
- 1996-12-19T16: 39: 57-08: 00
Solution
Pour créer RFC 3339 au format PHP vous pouvez utiliser:
echo date('Y-m-d\TH:i:sP', $row['Time']);
ou d'une autre manière:
echo date("c", strtotime($row['Time']));
ou si vous préférez un style objectif:
echo (new DateTime($row['Time']))->format('c');
Dans votre code
Ainsi, dans votre code, cela ressemblerait à ceci:
<input type="datetime-local" value="<?php echo date('Y-m-d\TH:i:sP', $row['Time']); ?>" class="date" name="start" REQUIRED>
ou
<input type="datetime-local" value="<?php echo date("c", strtotime($row['Time'])); ?>" class="date" name="start" REQUIRED>
Manuel
Plus d'informations peuvent être trouvées ici
c'est simple, et en travaillant pour moi, convertissez d'abord votre valeur php dans ce format
<?php $datetime = new DateTime($timeinout[0]->time_in); ?>
puis en valeur d'élément d'entrée html utiliser ce format
<input type="datetime-local" id="txt_time_in" placeholder="Time In" name="timein" value = "<?php echo $datetime->format('Y-m-d\TH:i:s'); ?>" class="form-control" />
cela définira votre valeur à l'élément d'entrée
Vous pouvez utiliser
date('Y-m-d\TH:i'); //Example result: '2017-01-01T01:01'
si utiliser\T au lieu de T (ne fonctionne pas)
date('Y-m-dTH:i'); //Example result: '2017-01-01UTC01:01'
La réponse de Karol Gasienica est une excellente explication, mais en quelque sorte n'a pas fonctionné pour moi, même dans leurs réponses
date('Y-m-d\TH:i:s', $row['Time']); //Gives me 1970-01-01 00:00
date('Y-m-d\TH:i:sP', $row['Time']); //Gives me no display
date("c", strtotime($row['Time'])); //No display too
Ce qui a fonctionné pour moi, c'est
$t = $row['Time'];
date('Y-m-d\TH:i:s', strtotime($t)); // This got it perfectly
Mais je l'ai quand même voté en raison de l'explication.
$tripid=$_REQUEST['tripid'];
$sql="SELECT * FROM tripdetails WHERE trip_id='".$tripid."'";
$trpresult=mysqli_query($connect,$sql);
if(mysqli_num_rows($trpresult)==1)
{
$trpdetails=mysqli_fetch_assoc($trpresult);
}
$trpstartdate = substr_replace($trpdetails['trip_start_date'],T,11,0);
$string = preg_replace('/\s+/', '', $trpstartdate);
C'est une partie Html
<input type="datetime-local" name="trip_start_date" id="cal" value="<?php echo $string?>">