近日在網頁開發時,遇上要讓使用者填寫時間的狀況。第一直覺會想到 input time ,不過這個時間格式有個隱形的坑,它的 12 / 24 小時的選項,是根據使用者電腦端的設定來決定的。如此一來,就會造成在實際設計表單上,產生要不要設計「上午 / 下午 」的選單困擾。
官方說明
- MDN 上頭的文件提到:這個 <input type=’time’> 標籤會依照瀏覽器和使用者的電腦端時間設定來決定如何顯示。
Safari 是不支援的,如果讀到這標籤,會轉換成 type=’text’ 的模式 - 使用者電腦端的設定若為 12 小時,那麼效果就是 hh:mm AM / hh:mm PM
文字方面,中文的話 AM / PM 會換成上午、下午,且他們會顯示在 hh:mm 的前面
Demo