QDate

QDate 组件提供了一种输入日期的方法。目前它支持公历(默认)和波斯历。

TIP

有关处理日期和/或时间,也可以查看 Quasar 日期实用程序

QDate API

Loading QDate API...

用法

WARNING

请注意,实际的日期 model 全都是一个字符串。

基础




TIP

对于横向模式,您可以将其与 $q.screen 一起使用。以使 QDate 变成响应式的。示例::landscape="$q.screen.gt.xs"。更多信息:Quasar Screen Plugin




多选

请注意,下面的 model 是一个数组,我们指定了 “multiple” 属性。

点击一个已经选择的日期将会取消选择它。




范围选择

请注意,在下面的示例中,model 是对象(单选)或对象数组(多选)。

TIPS

  • 点击一个已经选择的日期将会取消选择它。
  • 还可以通过 setEditingRange 方法编程设置用户当前的编辑范围(见 API 部分)。
  • 对于当前的编辑范围,有两个有用的事件: range-startrange-end(见 API 部分)。

WARNING

range 属性仅与 options 属性部分兼容:选定的范围可能还包括 “unselectable” (不可选择)的日期。







自定义标题和副标题

当不处于 ‘minimal’ 模式时,QDate 有一个标题和副标题。您可以覆盖它,如下面的示例所示。

单击标题时,QDate 的视图将更改为日历,单击副标题时,视图将切换为年份选择。




功能

当 model 模型数据为空时(如 null, void 0/undefined)时,QDate 仍然必须显示一年中某个月份的日历。您可以使用 default-year-month 属性来设置默认年月,否则当前的月份将显示:




默认视图可以改变。




每周第一天的设置取决于您设置的 Quasar 语言包,但您也可以强制指定它,如下面的示例所示。




、 单击 "Today" 按钮将日期设置为当前用户日期。需要标头,因此不能将其与 "minimal" 模式一起使用:






Model 掩码

默认的 model 数据掩码是 YYYY/MM/DD,然而您也可以使用自定义掩码。

mask 可以在 Quasar Utils > Date utils 页面中找到。

SSR 的注意事项

在掩码中使用 xX(时间戳)可能会在客户端上造成水合错误,因为解码 model 字符串必须使用考虑到本地时区的 new Date() 完成。因此,如果服务器与客户端处于不同的时区,则服务器的渲染输出将与客户端的不同,因此水合将失败。

波斯日历的注意事项

使用波斯日历时,QTime 的掩码强制为 YYYY/MM/DD




如果您想在掩码中插入字符串(包括[] 字符),请确保用[]将其转义,否则这些字符可能会被解释为格式标记。




使用掩码将 QDate 和 QTime 连接到同一模型:




TIP

如果希望以编程方式设置 QDate 的值,只需重新分配传递的值即可。但是,更新的值需要是一个与您的掩码格式相同的字符串。如,如果您的掩码为 'dddd, MMM D, YYYY',那么设置值为 '2019/04/28' 不会生效,需要使用 'Sunday, Apr 28, 2019' 代替。

自定义特殊语言环境

如果出于某种原因,您需要使用自定义的特殊语言环境,而不是已设置的当前 Quasar 语言包,您可以使用 locale 属性:




着色







高亮突出某些日期事件

第一个示例使用数组,第二个示例使用函数。







限制选项

  • 您可以使用 options 属性将用户选择限制在特定时间。
  • 或者,为了更深入地限制选项,您还可以为使用 options-fn 提供一个函数(下面的第二个示例)。

WARNING

options 属性仅与 range 属性部分兼容:选定的范围可能还包括 “unselectable” (不可选择)的日期。




设置导航界限

在下面的示例中,导航限制在 2020/07 和 2020/09 之间。




附加在按钮上

您可以使用默认插槽附加在按钮上:




搭配 QSplitter 和 QTabPanels




更多信息: QSplitter, QTabPanels.

搭配 QInput




在 QInput 上用相同的模型连接 QDate 和 QTime:




这里有一些可以用在 QInput 的 maskrules 中的工具。为了方便起见,您可以使用它们,也可以编写指定自定义需求的字符串

例如: “date”, “time”, “fulltime”.

更多信息: QInput.

波斯日历

TIP

您可以将其与诸如波斯语(波斯语,fair)之类的Quasar 语言包相结合,以便将 QDate 的字符串翻译,提供完整的体验。

WARNING

当使用波斯日历时,掩码会被强制设置为:YYYY/MM/DD

查看示例

原生表单提交

当处理一个带有 actionmethod 的原生表单时(如:使用 Quasar 和 ASP.NET 控制器时),您需要为 QDate 声明 name 属性,否则表单数据中不会包含它: