QDate
QDate 组件提供了一种输入日期的方法。目前它支持公历(默认)和波斯历。
TIP
有关处理日期和/或时间,也可以查看 Quasar 日期实用程序。
QDate API
用法
WARNING
请注意,实际的日期 model 全都是一个字符串。
基础
TIP
对于横向模式,您可以将其与 $q.screen
一起使用。以使 QDate 变成响应式的。示例::landscape="$q.screen.gt.xs"
。更多信息:Quasar Screen Plugin。
多选
请注意,下面的 model 是一个数组,我们指定了 “multiple” 属性。
点击一个已经选择的日期将会取消选择它。
范围选择
请注意,在下面的示例中,model 是对象(单选)或对象数组(多选)。
TIPS
- 点击一个已经选择的日期将会取消选择它。
- 还可以通过
setEditingRange
方法编程设置用户当前的编辑范围(见 API 部分)。 - 对于当前的编辑范围,有两个有用的事件:
range-start
和range-end
(见 API 部分)。
WARNING
range
属性仅与 options
属性部分兼容:选定的范围可能还包括 “unselectable” (不可选择)的日期。
自定义标题和副标题
当不处于 ‘minimal’ 模式时,QDate 有一个标题和副标题。您可以覆盖它,如下面的示例所示。
单击标题时,QDate 的视图将更改为日历,单击副标题时,视图将切换为年份选择。
功能
当 model 模型数据为空时(如 null
, void 0
/undefined
)时,QDate 仍然必须显示一年中某个月份的日历。您可以使用 default-year-month
属性来设置默认年月,否则当前的月份将显示:
默认视图可以改变。
每周第一天的设置取决于您设置的 Quasar 语言包,但您也可以强制指定它,如下面的示例所示。
Model 掩码
默认的 model 数据掩码是 YYYY/MM/DD
,然而您也可以使用自定义掩码。
mask
可以在 Quasar Utils > Date utils 页面中找到。
SSR 的注意事项
在掩码中使用 x
或 X
(时间戳)可能会在客户端上造成水合错误,因为解码 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
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quis praesentium cumque magnam odio iure quidem, quod illum numquam possimus obcaecati commodi minima assumenda consectetur culpa fuga nulla ullam. In, libero.
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quis praesentium cumque magnam odio iure quidem, quod illum numquam possimus obcaecati commodi minima assumenda consectetur culpa fuga nulla ullam. In, libero.
更多信息: QSplitter, QTabPanels.
搭配 QInput
在 QInput 上用相同的模型连接 QDate 和 QTime:
这里有一些可以用在 QInput 的 mask
和 rules
中的工具。为了方便起见,您可以使用它们,也可以编写指定自定义需求的字符串。
例如: “date”, “time”, “fulltime”.
更多信息: QInput.
波斯日历
TIP
您可以将其与诸如波斯语(波斯语,fair)之类的Quasar 语言包相结合,以便将 QDate 的字符串翻译,提供完整的体验。
WARNING
当使用波斯日历时,掩码会被强制设置为:YYYY/MM/DD
。
原生表单提交
当处理一个带有 action
和 method
的原生表单时(如:使用 Quasar 和 ASP.NET 控制器时),您需要为 QDate 声明 name
属性,否则表单数据中不会包含它: