web-dev-qa-db-ja.com

HTML5入力タイプの時間設定値が機能しない

入力タイプが時間のフォームがあります。値を設定しようとしています。しかし、それは示していません。これが私のコードです。

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

何が悪いのですか?

15
eddard.stark

24時間制なので、value="08:56" AMおよびvalue="20:56" PM。

ここに例

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

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

24
Josh Crozier

StephenGiri AM/PMを設定するには、12時間の文字列を24時間の文字列に変換してから渡す必要があります。 input [type = time]のvalue属性に追加します。

ここに簡単な 12時間-> 24時間の時間文字列を変換する方法を示します。

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}`;
}

お役に立てれば :)

2
Denys Summers

これは私のために働きました:

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

このように、時間列をフェッチして、PHPおよびmysqlを使用してこのように表示できます。

0
rahim.nagori