【HTML】inputで日付の入力欄を初心者でも簡単に作成する方法

公開日: 2021.12.18
更新日: 2024.01.06
inputで日付の入力欄を初心者でも簡単に作成する方法

誕生日や予約日など、WEBサイトでは日付を入力する機会がたびたびあります。

空の入力欄を用意し、そこに数字を入れてもらうという方法が簡単ですが、それだと間違いが起こりがちです。

手入力は不確実なもので、ちょっとした押し間違いで日付が大きく違ってしまうことがあります。

もっとも確実なのが、HTMLで日付専用の入力欄を作ることです。

表示された日付を選択する方式なので確実です。

また、さまざまな機能を付加できます。

HTMLのinputを用いた日付入力欄の作り方についてまとめたので、ぜひ参考にしてください。

HTMLのinputで日付の入力欄を作る

日付の入力欄の作り方はとても簡単です。

HTML
<input type="date">

フォームの部品であるinput要素に、部品のタイプを示す属性「type」で日付の値「date」を指定するだけです。

ブラウザによって表示はまちまちですが、「年/月/日」など日付をしめすテキストが表示された1行の入力欄が作られます。

入力欄全体か、右側にあるカレンダーのアイコンや「▼」アイコンを押すとカレンダーや日付が縦に並んだリストが表示され、その中から任意の日付を選ぶことが可能です。

これだけでも日付の入力欄として十分な機能を果たしていますが、ここからさらにカスタマイズすることもできます。

デフォルトの日付を設定する

<input type=”date”>だけだと、デフォルトでは日付は空欄になっていますが、任意の日付を表示させることができます。

HTML
<input type="date" value="2021-12-01">

このように「value」属性を指定すると、指定された日付がデフォルトで表示されるようになります。

日付選択の初期位置も、指定した日付に移動します。

PHPが利用可能であれば、以下のコードも試してください。

HTML
<input type="date" value="<?php echo date('Y-m-d'); ?>">

このように記述すると、常に「今日」の日付が表示されるようになります。

今日の日付とは、Webサイトを閲覧している日を指します。

指定できる日付の範囲を限定する

「min」属性は指定できる日付の最小値を設定できます。

HTML
<input type="date" min="2021-10-10">

このように記述すると、2021年10月10日以前の日付は選択できなくなります。

反対に、「max」属性は日付の最大値を設定できます。

HTML
<input type="date" max="2021-11-20">

これで2021年11月20日以降の日付は選択できなくなります。

「min」と「max」は併用が可能です。

HTML
<input type="date" min="2021-10-10" max="2021-11-20">

このように最小値と最大値を設定することで、選択可能な日付の範囲を指定できます。

予約期間などが設けられている場合に、便利な使い方です。

以下のような使い方もおすすめです。

HTML
<input type="date" min="<?php echo date('Y-m-d'); ?>" max="2021-11-20">

PHPで最小値を「今日」に設定しました。

これで、「今日からいつまで」という指定ができます。

日付の間隔を指定する

毎日ではなく、何日おきという設定も可能です。

HTML
<input type="date" step="2">

「step」属性で数字を記述します。

これは「2日ごと」という意味で、選択できる日付が1日おきになります。

これだけでは使いどころがさほど多くない機能ですが、「min」属性と組み合わせることで非常に便利になります。

HTML
<input type="date" min="2021-11-20" step="7">

これは2021年11月20日から7日ごと、つまり1週間ごとという記述で、曜日を指定できるのです。

特定の曜日にしか予約を受け付けていないといったシチュエーションで重宝するでしょう。

候補日を提示する

選択可能な日付が少ないときは、候補日だけを表示させるという方法もあります。

HTML
<input type="date" list="data">
<datalist id="data">
<option value="2021-11-05"></option>
<option value="2021-11-10"></option>
<option value="2021-11-15"></option>
</datalist>

inputの「list」属性とdatalistの「id」属性を同じにしてください。

optionの「value」属性に記述した日付だけが候補日として表示されるようになります。候補日の数に制限はありません。

限られた候補日の中から選ばせたいというときは、こちらの方が新設でしょう。

 まとめ

日付入力欄の作り方について解説しました。

とてもシンプルなコードで、カスタマイズも簡単です。

利用するシチュエーションによって機能を選択し、ユーザーにとって親切な日付入力欄を設定してください。

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5