web-dev-qa-db-fra.com

Les valeurs de réglage de l'heure du type d'entrée HTML5 ne fonctionnent pas

J'ai un formulaire avec l'heure du type d'entrée. J'essaie de définir des valeurs. Mais cela ne se voit pas. Voici mon code.

<input type="time" name="exit" id="teacher-entry-exit-form-exit-input" class="form-control" value="08:56 AM" required="">

Qu'est-ce que je fais mal?

15
eddard.stark

Il est basé sur une durée de 24 heures, utilisez donc value="08:56" pour AM et value="20:56" pour PM.

Exemple ici

<input type="time" value="08:56">

Voir: http://www.w3.org/TR/html-markup/input.time.html

24
Josh Crozier

Stephen , Giri , tout ce que vous avez à faire, pour obtenir le réglage AM/PM, est de convertir votre chaîne de 12 heures en chaîne de 24 heures, avant de passer à l'attribut value de input [type = time].

Voici un rapide exemple comment convertir une chaîne de temps de 12 heures -> 24 heures.

const am_pm_to_hours = time => {
    let hours = Number(time.match(/^(\d+)/)[1]);
    let minutes = Number(time.match(/:(\d+)/)[1]);
    const AMPM = time.match(/\s(.*)$/)[1];
    if (AMPM.toLowerCase() === "pm" && hours < 12) hours = hours + 12;
    if (AMPM.toLowerCase() === "am" && hours == 12) hours = hours - 12;

    let sHours = hours.toString();
    let sMinutes = minutes.toString();
    if (hours < 10) sHours = "0" + sHours;
    if (minutes < 10) sMinutes = "0" + sMinutes;

    return `${sHours}:${sMinutes}`;
}

j'espère que cela t'aides :)

2
Denys Summers

Cela a fonctionné pour moi:

<input class="form-control" type="time" name="time" value="<?=date("H:i", strtotime($dbObject['time'])); ?>" />

De cette façon, on peut récupérer la colonne de temps et l'afficher comme ceci en utilisant PHP et mysql.

0
rahim.nagori