vue 日期选择器默认时间_vue-datepicker

vue-datepicker

基于 Vue 的日期/时间选择组件。

安装

NodeJS 环境 (commonjs)

npm i @hyjiacan/vue-datepicker

或者

yarn add @hyjiacan/vue-datepicker

可以通过以下方式获取最新的代码

git clone https://github.com/hyjiacan/vue-datepicker.git

源码仓库

浏览器环境 (umd)

Since 2.4.0

与 NodeJS 环境不同的是,会暴露一个小写的全局 datepicker。

最新版本

指定版本

/dist/datepicker.umd.min.js">

unpkg 也是可用的: 替换 cdn.jsdelivr.net 为 unpkg.com

你也可以替换 datepicker.umd.min.js 为 datepicker.umd.js 以使用未压缩的版本进行开发调试。

注意:在浏览器环境直接引入时,需要显示引入依赖

popper.js

vue-popperjs

window['vue-popperjs'] = VuePopper

其中, window['vue-popperjs'] = VuePopper 必须在 datepicker 前引入。

使用

import DatePicker from '@hyjiacan/vue-datepicker'

import '@hyjiacan/vue-datepicker/dist/datepicker.css'

export default {

components: {DatePicker},

data() {

return {

date: new Date(),

min: '2012-12-12',

max: '2020-12-12'

}

}

}

更多示例参见

类型定义

year 日期选择,选择 年 为结果

month 日期选择,选择 月 为结果

quarter 日期选择,选择 季度 为结果

date 日期选择,选择 天 为结果

week 日期选择,选择 周 为结果

datetime 日期时间选择,选择 天和时间 为结果

time 时间选择,选择 时间 为结果

内置格式定义

{

"year":"yyyy",

"month":"yyyy-MM-dd",

"quarter":"yyyy-MM-dd",

"date":"yyyy-MM-dd",

"time":"HH:mm:ss",

"datetime":"yyyy-MM-dd HH:mm:ss",

"week":"yyyy-MM-dd"

}

格式定义是不可配置的。

props

v-model

type: Array, String, Number, Date

required: true

日期/时间值。

在按范围选择时 (指定 range),需要传入数组。 例外的是,按星期和季度选择时,可以仅传入一个值。 此时会自动根据传入日期所在范围设置值。

若要使用空值时,请传入空字符串 ''。

type

type: String

default: 'date'

选择器显示的类型。可选值见#类型定义。

format

type: String

选择器显示的日期/时间的格式。格式参考#内置格式定义。

此处设置的格式会应用到 v-model, min, max 上。

min

type: Number, String, Date

设置允许的日期/时间最小值。

max

type: Number, String, Date

设置允许的日期/时间最大值。

range

type: Boolean

default: false

是否按范围选择。

split

type: Boolean

default: false

是否将起止日期输入框分开显示。在指定了 range 为 true 时有效。

size

type: String

default: normal

控制日期值框的尺寸,可选值: mini, small, normal, large

mousewheel

type: Boolean

default: true

是否允许鼠标滚轮操作,当设置为 true 时,可以使用滚轮快速切换年/月翻页。

week-start

Since 0.2.0

type: Number

default: 0

用于设置一周的第一天是哪一天。

0 星期天

1 星期一

2 星期二

3 星期三

4 星期四

5 星期五

6 星期六

visible

type: Boolean

控制弹出框是否可见。设置为true以显示。

shortcuts

Since 0.3.0

type: Array

快捷按钮的数据,这是一个对象数组。每一项的结构为:

{

"text":"按钮文本",

"value":"按钮的值"

}

其中,value 在指定了 range 时为数组,否则为单个值。text 是按钮显示的文字。 一般最多不超过5个中文字符,超过时会自动显示为省略号。

value 也可以是一个函数(异步支持),函数内的返回值将作为结果。

clearable

type: Boolean

控制清除功能是否可用。可用时会显示清除按钮。

hide-icon

Since 0.4.0

type: Boolean

default: false

是否隐藏左侧的日历图标

placeholder

Since 0.4.0

type: String, Array

default: 见下方

指定 placeholder 文本。 当未指定 range 属性,或 type 为 week/quarter时,应该指定为单个字符串; 否则,应该指定为包含两个字符串的数组。

默认值如下:

const placeholders = {

year: '选择年',

month: '选择月',

week: '选择周',

quarter: '选择季度',

date: '选择日期',

time: '选择时间',

datetime: '选择时间',

yearRange: ['起始年份', '结束年份'],

monthRange: ['起始月份', '结束月份'],

dateRange: ['起始日期', '结束日期'],

timeRange: ['起始时间', '结束时间'],

datetimeRange: ['起始时间', '结束时间']

}

highlight-range

Since 1.1.0

type: Boolean

default: false

是否高亮选中范围。(仅在指定了 range 时有效)

readonly

(未实现)

type: Boolean

组件是否只读。

editable

(未实现)

type: Boolean

输入框是否可编辑。设置为true以手动输入日期/时间。

to-body

since 2.0.3

type: Boolean

default: true

事件

change

参数: ({type, value, src}, oldValue)

type 指定的类型

src 事件源,用以区分事件是从何而来:

Since 1.1.0

picker 选择面板

shortcut 快捷键

init 初始化

clear 清空按钮

插槽

shortcut

放置自定义的快捷按钮。

注意:由于在设计上通过 blur 事件关闭弹框,所以应该尽量避免在此插槽中使用会获得焦点的元素(e.g. button/input/select),以防止弹框意外关闭。

value

since 0.5.0

自定义值的显示。

参数: {value, type, format, visible}

title

since 0.6.0

设置选择器上方的标题文字

当指定了 range 属性时,插槽需要传入包含两个元素:

左侧的标题
右侧的标题

工具函数

导出了一点可能会用上的日期工具函数。

引用:

import DatePicker from '@hyjiacan/vue-datepicker'

// DatePicker.$util.format

导出的工具函数,在属性 $util 上,如: DatePicker.$util.format

所有的格式化串,请参照 内置格式定义 的写法。

export interface WeekRangeOption {

/**

* 周起始量,0-6分别表示星期天到星期六

*/

start: Number;

/**

* 周偏移量,可以是任意整数

*/

offset: Number;

/**

* 是否附带时间串

*/

time: Boolean;

/**

* 格式化串,不指定时返回 Date 类型

*/

format: String;

}

export interface MonthRangeOption {

/**

* 月偏移量,可以是任意整数

*/

offset: Number;

/**

* 是否附带时间串

*/

time: Boolean;

/**

* 格式化串,不指定时返回 Date 类型

*/

format: String;

}

export interface QuarterRangeOption {

/**

* 季度偏移量,可以是任意整数

*/

offset: Number;

/**

* 是否附带时间串

*/

time: Boolean;

/**

* 格式化串,不指定时返回 Date 类型

*/

format: String;

}

export interface WeekOfOption {

/**

* 周的偏移值

*/

start: Number;

/**

* 是否格式化

*/

format: boolean;

/**

* 遇到跨年的情况时,周应该放置在前一年(prev)还是当年(留空)或者下一年(next)

*/

boundary: string;

}

export interface DateRangeOption {

/**

* 是否格式化

*/

format: boolean;

/**

* 是否附带时间串

*/

time: Boolean;

}

export interface DateOffset {

year: number;

month: number;

date: number;

}

export interface $util {

/**

* 将任意格式的日期格式化成指定的格式

* @param {Date|String|Number} date

* @param {String} format 输出格式

* @param {String} [inputFormat] 当 date 是字符串时,通过此参数指定格式,不指定时使用 format 的值

* @return {string}

*/

format(date: [Date, String, Number], format: String, inputFormat?: string): string;

/**

* 将任意类型的日期格式转换成 Date 类型

* @param {Date|String|Number} date

* @param {String} [format] 当 date 是字符串时,通过此参数指定格式

* @return {Date}

*/

parse(date: [Date, String, Number], format?: string): Date;

/**

* 根据一个日期,谋算出其所在周的起止日期

* @param {Date} date

* @param {WeekRangeOption} [option]

* @param {number} [option.start=0] 周起始量,0-6分别表示星期天到星期六

* @param {number} [option.offset=0] 周偏移量,可以是任意整数

* @param {boolean} [option.time=false] 是否附带时间串

* @param {string} [option.format] 格式化串,不指定时返回 Date 类型

* @return {Date[]|String[]}

*/

getWeekRange(date: Date, option?: WeekRangeOption): Date[] | String[];

/**

* 根据一个日期,谋算出其所在月的起止日期 (月的第一天和最后一天)

* @param {Date} date

* @param {MonthRangeOption} [option]

* @param {number} [option.offset=0] 月偏移量,可以是任意整数

* @param {boolean} [option.time=false] 是否附带时间串

* @param {string} [option.format] 格式化串,不指定时返回 Date 类型

* @return {Date[]|String[]}

*/

getMonthRange(date: Date, option?: MonthRangeOption): Date[] | String[];

/**

* 根据一个日期,谋算出其所在季度的起止日期

* @param {Date} date

* @param {QuarterRangeOption} [option]

* @param {number} [option.offset=0] 季度偏移量,可以是任意整数

* @param {boolean} [option.time=false] 是否附带时间串

* @param {string} [option.format] 格式化串,不指定时返回 Date 类型

* @return {Date[]|String[]}

*/

getQuarterRange(date: Date, option?: QuarterRangeOption): Date[] | String[];

/**

* 获取传入日期处于一年中的第多少周

* @param {Date|Date[]} date

* @param {WeekOfOption} [option]

* @param {number} [option.start=0] 周的偏移值

* @return {{year: Number, week: Number}}

*/

getWeekOfYear(date: Date | Date[], option?: WeekOfOption): { year: Number, week: Number };

/**

* 获取传入日期处于一月中的第多少周

* @param {Date|Date[]} date

* @param {WeekOfOption} [option]

* @param {number} [option.start=0] 周的偏移值

* @return {{year: Number, month: Number, week: Number}}

*/

getWeekOfYear(date: Date | Date[], option?: WeekOfOption): { year: Number, month: Number, week: Number };

/**

* 根据一个日期以及偏移参数获取日期范围

* @param {Date} date

* @param {DateOffset|string} beginOffset 开始日期的偏移量

* @param {DateOffset|string} endOffset 结束日期的偏移量

* @param {DateRangeOption} [option]

* @param {string} [option.format] 格式化串,不指定时返回 Date 类型

* @param {boolean} [option.time=false] 是否附带时间串

* @return {Date[]|String[]}

*/

getDateRange(date: Date, beginOffset: DateOffset | string, endOffset: DateOffset | string, option?: DateRangeOption): Date[] | string[];

/**

* 按指定规则对日期进行偏移

* @param {Date} date

* @param {DateOffset|string} offset 日期的偏移量

* @return {Date} 偏移后的日期对象(新对象)

*/

offsetDate(date: Date, offset: DateOffset | string): Date;

}

说明:

函数 getDateRange 和 offsetDate 的偏移参数为字符串时,取值格式为 1y-2m3d:

1y 表示年偏移量为 1

-2m 表示月偏移量为 -2

3d 表示天偏移量为 3

这个串的偏移结果相当于:

const date = new Date()

date.setFullYear(date.getFullYear() + 1)

date.setMonth(date.getMonth() - 2)

date.setDate(date.getDate() + 3)

可以仅指定一项(y/m/d其中之一)或同时指定多项,不区分大小写。

支持

感谢 iconfont 提供的图标平台,以及开源图标的设计者们

更新日志

2.0.0

修复 season 词义错误,使用 quarter 作为季度名称

1.1.2

修复 在仅改变了开始日期时,未触发 change 事件的问题

1.1.1

修复 选择弹框布局错乱

1.1.0

添加 highlight-range 属性,以高亮选中范围的背景

优化 给 change 事件添加 src 参数,以辅助开发

1.0.0

优化 将样式文件生成到独立CSS文件中,不再混入JS代码

修复 outline 样式

0.6.14

修复 outline 样式范围超出容器宽度的问题

0.6.13

修复 选中值后焦点仍然存在导致无法打开弹框的问题

修复 点击清除按钮会打开弹框的问题

修复 点击快捷按钮可能会关闭弹框的问题

修复 其它问题

优化 高亮当前日期

0.6.12

修复 点击快捷按钮时,会导致弹框关闭的问题

0.6.10

优化 支持通过焦点显示/隐藏弹框

0.6.9

修复 type=week 初始化时,传入值不是有正确的星期范围时可能不会触发值更新的问题

0.6.8

修复 getDateRange 在未传入 option 参数时报错的问题

0.6.7

修复 getWeekRange 计算错误

0.6.6

添加工具函数 getDateRange 与 offsetDate

0.6.5

优化 快捷键配置的json格式中,支持将 value 设置成函数

0.6.0

添加 title 插槽支持

0.5.2

修复 getWeekRange 计算错误

0.5.0

暴露出工具函数 getWeekOfYear

添加 值渲染插槽

0.4.0

修改 geWeek(Month/Quarter)Range 参数

添加 日历图标

优化 样式

移除 split 属性

添加 placeholder 支持

0.3.0

优化 日历上对年的限制 1900 到 2999

优化 范围选择样式

优化 函数功能

优化 统一样式类命名规则

添加 清除值功能

添加 空值支持

添加 shortcuts属性以及slots=shortcut,用于放置快捷按钮

0.2.6

优化 range 属性,当设置 type 为 week或quarter时, range 自动变更为 true

优化 v-model 属性,当设置的值为空(即未设置)时,使用当前日期

0.2.5

修复 计算周范围的错误

添加 工具函数 DatePicker.$util

添加 types 声明

0.2.1

修复 按范围选择时,背景透明的问题

修复 选择1月28号以后,导致1月日历丢失的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyUI validate函数【总结篇-部分转】

以下是自己总结和修改别人的帖子和资源整理出来的一些常用验证函数&#xff0c;备用&#xff0c;交流。 <body>邮箱验证&#xff1a;<input type"text" validtype"email" required"true" missingMessage"不能为空" invalidMe…

CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

金色十月线上编程比赛第一题&#xff1a;小女孩数数 题目详情: 【金色十月线上编程比赛规则】 一个小女孩正在用左手手指数数&#xff0c;从1数到n。她从拇指算作1开始数起&#xff0c;然后&#xff0c;食指为2&#xff0c;中指为3&#xff0c;无名指为4&#xff0c;小指为5。…

ubuntu 安装完成后的工作

以安装 ubuntu 15.10 为例 1. 备份并更改源 1 cd /etc/apt 2 sudo cp source.list source.list.bak 3 sudo vi source.list 删除所有内容并增加其他源&#xff08;用vi删除所有内容&#xff0c;命令行下gg移动光标至文件头&#xff0c;dG删除光标后所有内容&#xff09; 阿里云…

Morphia和MongoDB:不断发展的文档结构

在上一篇有关Morphia的文章中 &#xff0c;我介绍了一些典型用法&#xff0c;并提到了一些已知问题的警告和解决方法。 我展示了使用Morphia多么容易&#xff0c;以及它与Java世界的交互方式。 为了跟进该帖子&#xff0c;我将讨论如何处理一些现实生活中的需求&#xff1a;处理…

angular 点菜_Vue2与Angular5实现无人点餐、无人收银系统项目实战视频教程【组合套餐】(大地)...

Vue2实现无人点餐、无人收银系统项目实战视频教程详情地址&#xff1a;Angular5实现无人点餐、无人收银系统项目实战视频教程详情地址&#xff1a;教程介绍&#xff1a;Vue2与Angular5实现无人点餐、无人收银系统项目实战视频教程【组合套餐】是由大地老师倾情录制的最新Vue2与…

CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

金色十月线上编程比赛第二题&#xff1a;解密 题目详情: 小强是一名学生&#xff0c; 同时他也是一个黑客。 考试结束后不久&#xff0c;他惊讶的发现自己的高等数学科目居然挂了&#xff0c;于是他果断入侵了学校教务部网站。在入侵的过程中&#xff0c;他发现了与成绩相关的…

iOS学习心得——UITableViewCell的复用

UITableView是在iOS开发中最常用的控件之一。我的第一篇学习心得献给它了UITableView是由一行一行的UITableViewCell构成的。首先想这样一个问题&#xff1a;现在用UITableView去做一个联系人列表&#xff0c;如果我有10个100个联系人&#xff0c;那我可以建10个100 个UITab…

Java EE 7的高峰–使用EclipseLink的多租户示例

水族馆是有关所有相关规范和参考实现中有关Java EE进度的灵感和最新信息的重要来源。 他们从Oracle的Shaun Smith&#xff08; 博客 / twitter &#xff09;获得了关于EclipseLink作为开源项目的地位和未来的演讲。 他介绍了将在EclipseLink 2.4中提供的所有新功能&#xff0c;…

vscode中如何拉取git代码_使用VSCode如何从github拉取项目的实现

使用VSCode如何从github拉取项目的实现最近使用vscode进行前端编程&#xff0c;遇到一些问题网上说明的不是很明显&#xff0c;故记录一下1.开vscode使用CTRL或者点击查看到集成终端打开控制终端到此这篇关于使用VSCode如何从github拉取项目的实现的文章就介绍到这了,更多相关V…

matlab求导

在matlab中求导要进行符号运算。 >>syms x; >>y x^cos(x); >>ydot diff(y, x, 1);%对x求一阶导数 ydot x^(cos(x) - 1)*cos(x) - x^cos(x)*log(x)*sin(x) >> y2dot diff(y, x, 2)%求二阶导数&#xff0c;求n阶导数同理。 y2dot cos(x)*(x…

带有Java和Axis2的JSON Web服务

我最近遇到一位客户&#xff0c;要求我使用Java Web服务重建其旧产品。 他们希望它模块化并且易于使用。 我想到的第一件事是使用宁静的方法。 但是让我烦恼的是&#xff0c;Java宁静的方法是使用XML !&#xff0c;我更喜欢一种更简单的通信方式&#xff0c;易于理解和解析的数…

Kosaraju算法 有向图的强连通分量

有向图的强连通分量即&#xff0c;在有向图G中&#xff0c;如果两个顶点间至少存在一条路径&#xff0c;称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通&#xff0c;称G是一个强连通图。非强连通图有向图的极大强连通子图&#xff0c;称为强连通分量(…

监管大屏系统_工厂大屏可视化管控系统,智慧工厂平台是什么,工厂管理大屏软件 - 帆软...

智慧工厂大屏可视化管控系统&#xff0c;不但注重显示数据显示信息能力&#xff0c;还要兼具监管的作用&#xff0c;配合时代新兴的大屏技术&#xff0c;早已成为精益生产工厂的必备产品。本文权威介绍智慧工厂大屏可视化管控系统是什么&#xff0c;以及3款主流软件&#xff0c…

图像二维离散傅里叶变换、幅度谱、相位谱

clear, clc I imread(...);F fftshift(fft2(I)); % 对图像进行二维 DFT(fft2)&#xff0c;并移至中心位置 magn log(abs(F)); % 加 log 是便于显示&#xff0c;缩小值域 phase log(angle(F)*180/pi); % 转换为度数…

详解CSS选择器、优先级与匹配原理

选择器种类 严格来讲&#xff0c;选择器的种类可以分为三种&#xff1a;标签名选择器、类选择器和ID选择器。而所谓的后代选择器和群组选择器只不过是对前三种选择器的扩展应用。而在标签内写入style""的方式&#xff0c;应该是CSS的一种引入方式&#xff0c;而不是选…

关于299$的企业开发者账号的申请流程

299$的企业开发者账号 Apple Developer Enterprise Program•一年1988人民币 - 企业 (Apple Developer Enterprise Program)- 公司应在邓白氏注册并拥有有效的 DUNS 号码。&#xff0d;此计划使开发者能够开发针对 Apple 设备的应用程式&#xff0c;并对其员工进行发布&#xf…

keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?

DanielAdiwardana的答案的详细说明。我们需要为除最后一层之外的所有LSTM层添加return_sequences True。将此标志设置为True可让Keras知道LSTM输出应包含所有历史生成的输出以及时间戳(3D)。 因此&#xff0c;下一个LSTM层可以进一步处理数据。如果此标志为假&#xff0c;则LS…

Java堆空间– JRockit和IBM VM

本文将为您提供JRockit Java堆空间与HotSpot VM的概述。 它还将为您提供有关JRockit和HotSpot的Oracle未来计划的一些背景知识。 Oracle JRockit VM Java堆&#xff1a;2个不同的内存空间 -Java堆&#xff08;YoungGen和OldGen&#xff09; -本机内存空间&#xff08;类池&am…

如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境 [转]

在网上搜资料,自己在本地虚拟机上尝试搭建,弄了整整一天一夜,终于弄好了.网上的资料,虽然很多,但大多都是重复的,拿去试了之后,又很多都不能得到正确的结果.最终找到了适合我的linux环境的搭建方式;在这里贴出来:Install Apache, PHP And MySQL On CentOS 7 (LAMP)度娘真不给力…

为什么要用!DOCTYPE声明

实例&#xff1a; 我们经常会看到类似这样的代码&#xff1a; <!DOCTYPE html> <html> <head> <title>文档的标题</title> </head> <body> 文档的内容...... </body> </html>注解&#xff1a;可以看到最上面有一行关于“…