Datepicker
Base input type date
Usage
Simple Usage
<template>
<p-datepicker />
</template>
Sizing
Datepicker has 4 variants size: xs
, sm
, md
, lg
, default is md
.
<template>
<p-datepicker size="xs" />
<p-datepicker size="sm" />
<p-datepicker size="md" />
<p-datepicker size="lg" />
</template>
Placement
You can customize the datepicker position using the placement
prop. This flexibility ensures that the datepicker fits seamlessly within your user interface. The placement prop determines where the datepicker will appear in relation to the input field.
<template>
<p-datepicker placement="left" />
</template>
Combining Placement
You can further refine the placement by combining it with a suffix to adjust vertical/horizontal alignment. This suffix is useful for aligning the datepicker with the start (*-start
) or end (*-end
) of the input field.
<template>
<p-datepicker placement="bottom-end" />
</template>
Placeholder
You can set input placeholder via placeholder
props
<template>
<p-datepicker placeholder="Pick A Date" />
</template>
Display Format
You can date via prop format
. default is dd/MM/yyyy
<template>
<p-datepicker
v-model="value"
format="yyyy-MM-dd" />
</template>
Limiting Date
You can limit the date via min
or max
props
<template>
<!-- Limit this year only -->
<p-datepicker
:min="min"
:max="max" />
</template>
<script lang="ts" setup>
import { startOfYear, endOfYear } from 'date-fns'
const min = startOfYear(new Date())
const max = endOfYear(new Date())
</script>
Mode Variant
There 3 available mode: date
, month
, year
. default is date
. it will limit user input the date.
for example, mode month
make user can only select the month, but can't select what spesific date.
<template>
<p-datepicker
format="dd MMM yyyy"
mode="date" />
<p-datepicker
format="MMM yyyy"
mode="month" />
<p-datepicker
format="yyyy"
mode="year" />
</template>
Range Picker
Set prop range
to true
to enable date range picker mode.
<template>
<p-datepicker range />
</template>
Min and Max Range
You can limit minimal and maximal date range to pick using prop min-range
and max-range
.
<template>
<!-- Limit min 3 days and max 7 days -->
<p-datepicker range min-range="3D" max-range="7D" />
</template>
👉 See here to more information about range format value.
Disabled State
<template>
<p-datepicker disabled />
</template>
Readonly state
<template>
<p-datepicker readonly />
</template>
Error state
<template>
<p-datepicker error />
</template>
Clearable
Add clear button to input with prop clearable
.
<template>
<p-datepicker clearable />
</template>
Binding v-model
<template>
<p-datepicker v-vmodel="value" />
</template>
Result :
-
v-model in range mode
There are 2 ways to use v-model in range
mode.
1. Using basic v-model
You can use basic v-model
to handle date range input, The value will be tuple of Date, [start, end]
result:
-
<template>
<p-datepicker v-model="result" range />
</template>
2. using v-model:start and v-model:end
You can specific binding the value using v-model:start
or v-model:end
start:
-
end:
-
<template>
<p-datepicker
v-model:start="start"
v-model:end="end"
range />
</template>
API
Props
Props | Type | Default | Description |
---|---|---|---|
modelValue | Date | - | v-model value |
size | String | md | Input size variant, valid value: xs , sm , md , lg |
start | Date | - | v-model:start value |
end | Date | - | v-model:end value |
placeholder | String | - | Input placeholder |
format | String | dd/MM/yyyy | Date format |
disabled | Boolean | false | Disabled state |
readonly | Boolean | false | Readonly state |
error | Boolean | false | Error state |
clearable | Boolean | false | Enable clear |
mode | String | - | Calendar mode valid value: date , month , year |
min | Date | - | Minimum date can be selected |
max | Date | - | Maximum date can be selected |
range | Boolean | false | Enable range picker mode |
minRange | String | - | Minimum range date should be selected |
maxRange | String | - | Maximum range date should be selected |
container-class | String or Array or Object | - | CSS class to add in the input container |
Slots
Name | Description |
---|---|
There no slots here |
Events
Name | Arguments | Description |
---|---|---|
change | Native Date object | Event when date selected |