日期時間選擇器

Tempus Dominus Bootstrap 4 Datetime Picker

Jacy Chu
4 min readDec 2, 2021

⌚️ 此篇文章整理開發專案時,實際遇到的問題與解決辦法

📋 目錄

  1. Datetime Picker 介紹
  2. 進階調整區間
  3. 客製化樣式

Datetime Picker 介紹

📅 官網:Tempus Dominus Bootstrap 4 datetimepicker
Bootstrap 4 日期時間選擇器插件,提供大量配置參數,製作簡單實用的日期選擇器效果。特點如下:

  • 支持語言國際化和時區。
  • 支持日期選擇模式和時間選擇模式。
  • 支持最大和最小日期選擇。
  • 支持禁用指定的日期。
  • 支持年/星期預覽模式。
  • 支持某個星期中禁用某些天。
  • 可自定義日期格式。
  • 提供大量的配置參數和API接口。

基礎套件使用

最基礎的設定可以參考官方文件 🔍

預設樣式如下圖所示:

進階調整區間

實作專案時,有著連動限制關係存在時,如下圖所示:

若選定 5min,對應的最大時間差距為 12 小時,假如 end time 固定取 render頁面的時間。裡面的 minDate, maxDate 要隨著 period 的選擇作調整。

(已先拿掉樣式設定部分) index.html 檔案有關 datetimepicker 部分如下:

非完整 index.html 檔案

搭配的 JS 檔案,說明於註解中。如下(只有收錄精華部分):

非完整 index.js 檔案

其中比較特別的部分,是每一次重新繪製 datetimpicker 需要使用 ‘destroy’ 來銷毀,如果沒有 destroy 則無法重新設定。

客製化樣式

若不喜歡套件的預設樣式,可以選擇修改 tempusdominus-bootstrap.css 檔案,或是在自己的 style.css 設定去覆蓋原本的。

在使用 F12 開發人員工具去觀察畫面時,會遇到一個問題:滑鼠點擊時間的 input 框框,出現 dropdown 時,觀測的游標消失,欲觀察 dropdown 裡面的元素不能直接用習慣的方式。

針對這個問題,筆者在發問討論區找到此篇文章:How can I inspect disappearing element in a browser?

其中 Mojtaba 的回覆,完美地解決上述問題💜

setTimeout(()=> {debugger;},5000) console 輸入這一行,五秒後會呈現 debugger 的模式,在這五秒內可以去點擊時間欄位框框以便觀察。且這樣的解法不只用於此情形,未來有遇到類似觀察不到的元素也很適用。

於專案中,筆者修改 style.css 檔案,以覆寫的方法蓋掉原本的樣式。

最後選擇器呈現樣式如下:

此圖為樣式截圖彙整,並非同時出現

成果還不錯吧 🙌

✨ Time to shine!

--

--