js的4種選擇器「js時間選擇器」

介紹

flatpickr是輕量級的、功能強大的沒有依賴項的javascript日期選擇器,幾乎每個大型SPA或項目都涉及日期和時間輸入。瀏覽器的本機實現是不一致的,在功能上也是有限的。大多數其他庫都要求引入大量的依賴項,如jQuery、Bootstrap和tag.js。而flatpickr是一個零依賴、輕量級但功能強大的日期選擇器!


輕量級的、功能強大的沒有依賴項的javascript日期選擇器

Github和文檔

github:

https://github.com/flatpickr/flatpickr

文檔:

https://flatpickr.js.org/examples/

特性

  • 沒有依賴(沒有臃腫的包)
  • 簡單,優雅UI
  • 日期+時間輸入
  • 範圍選擇
  • 能夠選擇多個日期
  • 可以用作時間選擇器
  • 以人性化格式顯示日期
  • 使用任意邏輯輕鬆禁用特定日期、日期範圍或任何日期
  • 周數
  • 50種語言
  • 8個豐富多彩的主題
  • 眾多插件
  • 可用於React、Angular、Vue、Ember等更多的庫

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

官方示例

官方文檔中提供了非常豐富的實例

  • 基本的用法,不用配置

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 時間
{
 enableTime: true,
 dateFormat: "Y-m-d H:i",
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 人性化的顯示

altInput隱藏原始輸入並創建一個新輸入。在日期選擇時,原始輸入將包含一個Y-m-d.字元串,而altInput將以更清晰、可自定義的格式顯示日期。

{
 altInput: true,
 altFormat: "F j, Y",
 dateFormat: "Y-m-d",
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 選擇控制
  • 1、defaultDate(默認值)
  • 2、minDate(可選最小值)
  • 3、maxDate(可選最大值)
  • 4、enable/disable(可以選擇或者不能選擇的日期數組)

如:

{
 minDate: "2020-01"
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

{
 disable: ["2025-01-30", "2025-02-21", "2025-03-08", new Date(2025, 4, 9) ],
 dateFormat: "Y-m-d",
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

{
 dateFormat: "Y-m-d",
 disable: [
 {
 from: "2025-04-01",
 to: "2025-05-01"
 },
 {
 from: "2025-09-01",
 to: "2025-12-01"
 }
 ]
}//限制選擇的日期範圍

  • 選擇多個日期
{
 mode: "multiple",
 dateFormat: "Y-m-d"
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 日期範圍選擇
{
 mode: "range"
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 時間選擇器
{
 enableTime: true,
 noCalendar: true,
 dateFormat: "H:i",
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 內聯顯示
{
 inline: true
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 顯示周
{
 weekNumbers: true,
 /*
 可以通過重寫getWeek自定義顯示周
 */
 // getWeek: function (dateObj) {
 // // ...
 // }
});

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 外部控制
<div class="flatpickr">
 <input type="text" placeholder="Select Date.." data-input> <!-- input is mandatory -->
 <a class="input-button" title="toggle" data-toggle>
 <i class="icon-calendar"></i>
 </a>
 <a class="input-button" title="clear" data-clear>
 <i class="icon-close"></i>
 </a>
</div>

{
 wrap: true
}

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 本土化
 <script src="https://npmcdn.com/flatpickr/dist/l10n/zh.js"></script>

 flatpickr("#mypick", {
 "locale": "zh"
 });

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

主題

引入方法:

<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/dark.css">
  • 黑色主題

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 藍色
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/material_blue.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 綠色
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/material_green.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 紅色
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/material_red.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • 橙色
 <link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/material_orange.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器
  • airbnb
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/airbnb.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

  • confetti
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/themes/confetti.css">

輕量級的、功能強大的沒有依賴項的javascript日期選擇器

其它

  • 移動端支持

什麼時候flatpickr檢測到移動瀏覽器,它會將日期輸入轉換為本機日期/時間/日期時間輸入,不需要額外的配置。但是,本機日期時間選擇僅限於以下功能:

  • 1、預裝日期/時間/日期時間
  • 2、minDate
  • 3、maxDate
  • 兼容性

在IE10+,Safari 6+,Firefox和Chrome中開箱即用,如果在IE9

<!--[if IE 9]>
<link rel="stylesheet" type="text/css" href="https://npmcdn.com/flatpickr/dist/ie.css">
<![endif]-->

總結

flatpickr是一個不錯的獨立日期(時間)選擇器,特別適合某些特定的不需要引入其它框架的時候,純粹、簡單、優雅,如果你的項目有這樣的需求,可以看看它,僅僅是一些配置就能滿足強大的功能!

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/205628.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-07 17:48
下一篇 2024-12-07 17:48

相關推薦

發表回復

登錄後才能評論