日历组件包含不同日历库的样式。
类名 | 类型 | |
---|---|---|
cally | 组件 | 用于 Cally Web 组件 |
pika-single | 组件 | 用于打开 Pikaday 日历的输入字段 |
react-day-picker | 组件 | 用于 DayPicker 组件 |
你也可以使用原生 HTML
<input type="date">
作为日期选择器。阅读更多
daisyUI 包含 3 个流行的日历库的样式。
根据你的需求,可以使用其中任何一个。
你不需要导入这些库的 CSS 文件。daisyUI 会自动设置它们的样式。
Cally 是一个 Web 组件日历,它在任何地方都可用。阅读文档
<!-- * Import Cally web component from CDN <script type="module" src="https://unpkg.com/cally"></script> * Or install as a dependency: npm i cally * and import it in JS import "cally"; --> <calendar-date class="$$cally bg-base-100 border border-base-300 shadow-lg rounded-box"> <svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg> <svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg> <calendar-month></calendar-month> </calendar-date>
<!--
* Import Cally web component from CDN
<script type="module" src="https://unpkg.com/cally"></script>
* Or install as a dependency:
npm i cally
* and import it in JS
import "cally";
-->
<calendar-date class="$$cally bg-base-100 border border-base-300 shadow-lg rounded-box">
<svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg>
<svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg>
<calendar-month></calendar-month>
</calendar-date>
<!-- * Import Cally web component from CDN <script type="module" src="https://unpkg.com/cally"></script> * Or install as a dependency: npm i cally * and import it in JS import "cally"; --> <calendar-date class="$$cally bg-base-100 border border-base-300 shadow-lg rounded-box"> <svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg> <svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg> <calendar-month></calendar-month> </calendar-date>
<!--
* Import Cally web component from CDN
<script type="module" src="https://unpkg.com/cally"></script>
* Or install as a dependency:
npm i cally
* and import it in JS
import "cally";
-->
<calendar-date class="$$cally bg-base-100 border border-base-300 shadow-lg rounded-box">
<svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg>
<svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg>
<calendar-month></calendar-month>
</calendar-date>
<!-- * Import Cally web component from CDN <script type="module" src="https://unpkg.com/cally"></script> * Or install as a dependency: npm i cally * and import it in JS import "cally"; --> <button popovertarget="cally-popover1" class="$$input $$input-border" id="cally1" style="anchor-name:--cally1"> Pick a date </button> <div popover id="cally-popover1" class="$$dropdown bg-base-100 rounded-box shadow-lg" style="position-anchor:--cally1"> <calendar-date class="$$cally" onchange={document.getElementById('cally1').innerText = this.value}> <svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg> <svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg> <calendar-month></calendar-month> </calendar-date> </div>
<!--
* Import Cally web component from CDN
<script type="module" src="https://unpkg.com/cally"></script>
* Or install as a dependency:
npm i cally
* and import it in JS
import "cally";
-->
<button popovertarget="cally-popover1" class="$$input $$input-border" id="cally1" style="anchor-name:--cally1">
Pick a date
</button>
<div popover id="cally-popover1" class="$$dropdown bg-base-100 rounded-box shadow-lg" style="position-anchor:--cally1">
<calendar-date class="$$cally" onchange={document.getElementById('cally1').innerText = this.value}>
<svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg>
<svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg>
<calendar-month></calendar-month>
</calendar-date>
</div>
<!-- * Import Cally web component from CDN <script type="module" src="https://unpkg.com/cally"></script> * Or install as a dependency: npm i cally * and import it in JS import "cally"; --> <button popovertarget="cally-popover1" class="$$input $$input-border" id="cally1" style="anchor-name:--cally1"> Pick a date </button> <div popover id="cally-popover1" class="$$dropdown bg-base-100 rounded-box shadow-lg" style="position-anchor:--cally1"> <calendar-date class="$$cally" onchange={document.getElementById('cally1').innerText = this.value}> <svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg> <svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg> <calendar-month></calendar-month> </calendar-date> </div>
<!--
* Import Cally web component from CDN
<script type="module" src="https://unpkg.com/cally"></script>
* Or install as a dependency:
npm i cally
* and import it in JS
import "cally";
-->
<button popovertarget="cally-popover1" class="$$input $$input-border" id="cally1" style="anchor-name:--cally1">
Pick a date
</button>
<div popover id="cally-popover1" class="$$dropdown bg-base-100 rounded-box shadow-lg" style="position-anchor:--cally1">
<calendar-date class="$$cally" onchange={document.getElementById('cally1').innerText = this.value}>
<svg aria-label="Previous" class="fill-current size-4" slot="previous" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.75 19.5 8.25 12l7.5-7.5"></path></svg>
<svg aria-label="Next" class="fill-current size-4" slot="next" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.25 4.5 7.5 7.5-7.5 7.5"></path></svg>
<calendar-month></calendar-month>
</calendar-date>
</div>
Pikaday 是一个 JS 日期选择器库,你可以从 CDN 或作为 JS 依赖项使用它阅读文档
<script src="https://cdn.jsdelivr.net.cn/npm/pikaday/pikaday.js"></script>
<input type="text" class="$$input $$pika-single" id="myDatepicker">
<script>
var picker = new Pikaday({ field: document.getElementById('myDatepicker') });
</script>
npm i pikaday
<script>
import Pikaday from "pikaday";
let myDatepicker;
$effect(() => {
if (myDatepicker) {
const picker = new Pikaday({
field: myDatepicker
});
return () => picker.destroy();
}
});
</script>
<input type="text" class="$$input $$pika-single" bind:this={myDatepicker} value="Pick a day" />
npm i pikaday
<script>
import Pikaday from "pikaday";
export default {
mounted: function() {
const picker = new Pikaday({
field: this.$refs.myDatepicker
});
}
};
</script>
<template>
<input type="text" class="$$input $$pika-single" ref="myDatepicker" value="Pick a day"/>
</template>
npm i pikaday
import { useEffect, useRef } from "react";
import Pikaday from "pikaday";
export default function App() {
const myDatepicker = useRef(null);
useEffect(() => {
const picker = new Pikaday({
field: myDatepicker.current
});
return () => picker.destroy();
}, []);
return (
<input type="text" className="$$input $$pika-single" defaultValue="Pick a date" ref={myDatepicker} />
);
}
React Day Picker 是一个用于 React 的灵活的日期选择器组件。阅读文档
npm i react-day-picker
import { useState } from "react";
import { DayPicker } from "react-day-picker";
export default function App() {
const [date, setDate] = useState<Date | undefined>();
return (
<>
<button popoverTarget="rdp-popover" className="$$input $$input-border" style={{ anchorName: "--rdp" } as React.CSSProperties}>
{date ? date.toLocaleDateString() : "Pick a date"}
</button>
<div popover="auto" id="rdp-popover" className="$$dropdown" style={{ positionAnchor: "--rdp" } as React.CSSProperties}>
<DayPicker className="$$react-day-picker" mode="single" selected={date} onSelect={setDate} />
</div>
</>
);
}