显示一个日期输入小部件。

一周的第一天由用户浏览器中的区域设置决定。

函数签名[source]

st.date_input(标签, 值="今天", 最小值=无, 最大值=无, 键=无, 帮助=无, 更改时=无, 参数=无, 关键字参数=无, *, 格式="YYYY/MM/DD", 禁用=假, 标签可见性="可见")

参数

label (str)

一个简短的标签,向用户解释此日期输入的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。

不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"

有关其他支持的Markdown指令,请参见st.markdownbody参数。

出于可访问性原因,您永远不应设置空标签,但如有需要,可以使用label_visibility隐藏它。将来,我们可能会通过引发异常来禁止空标签。

value ("today", datetime.date, datetime.datetime, str, list/tuple of these, or None)

此小部件首次渲染时的值。可以是以下之一:

  • "today"(默认):小部件初始化为当前日期。
  • 一个datetime.datedatetime.datetime对象:小部件初始化为给定日期,忽略任何时间(如果包含)。
  • 一个ISO格式的日期("YYYY-MM-DD")或日期时间("YYYY-MM-DD hh:mm:ss")字符串:小部件初始化为给定日期,忽略任何时间(如果包含)。
  • 一个包含最多两个上述元素的列表或元组:小部件将初始化为给定的日期区间,并返回所选区间的元组。您可以传递一个空列表以初始化小部件为空区间,或传递一个包含一个值的列表以仅初始化区间的开始日期。
  • None:小部件初始化为无日期,并返回None,直到用户选择日期。

min_value ("today", datetime.date, datetime.datetime, str, or None)

可选择的最小日期。这可以是value接受的任何日期类型,除了列表或元组。

如果这是None(默认值),则最小可选日期是初始值之前的十年。如果初始值是一个区间,则最小可选日期是区间开始日期之前的十年。如果没有设置初始值,则最小可选日期是今天之前的十年。

max_value ("today", datetime.date, datetime.datetime, str, or None)

可选择的最大日期。这可以是value接受的任何日期类型,除了列表或元组。

如果这是None(默认值),可选择的最大日期是初始值之后的十年。如果初始值是一个区间,可选择的最大日期是区间结束日期之后的十年。如果没有设置初始值,可选择的最大日期是今天之后的十年。

key (str or int)

一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。 任何两个小部件都不能有相同的键。

help (str)

一个可选的小提示,显示在小部件标签旁边。 只有当label_visibility="visible"时,Streamlit才会显示这个小提示。

on_change (callable)

当此日期输入的值发生变化时调用的可选回调函数。

args (tuple)

传递给回调函数的可选参数元组。

kwargs (dict)

一个可选的字典,用于传递给回调函数。

format (str)

一个控制界面如何显示日期的格式字符串。 支持 "YYYY/MM/DD"(默认)、"DD/MM/YYYY" 或 "MM/DD/YYYY"。 你也可以使用句点(.)或连字符(-)作为分隔符。

disabled (bool)

一个可选的布尔值,如果设置为True,则禁用日期输入。默认值为False

label_visibility ("visible", "hidden", or "collapsed")

标签的可见性。默认是"visible"。如果这是"hidden",Streamlit会显示一个空白的间隔符而不是标签,这有助于保持小部件与其他小部件对齐。如果这是"collapsed",Streamlit不会显示标签或间隔符。

返回

(datetime.date 或包含 0-2 个日期的元组或 None)

日期输入小部件的当前值,如果未选择日期则为 None

示例

import datetime
import streamlit as st

d = st.date_input("When's your birthday", datetime.date(2019, 7, 6))
st.write("Your birthday is:", d)
import datetime
import streamlit as st

today = datetime.datetime.now()
next_year = today.year + 1
jan_1 = datetime.date(next_year, 1, 1)
dec_31 = datetime.date(next_year, 12, 31)

d = st.date_input(
    "Select your vacation for next year",
    (jan_1, datetime.date(next_year, 1, 7)),
    jan_1,
    dec_31,
    format="MM.DD.YYYY",
)
d

要初始化一个空的日期输入,使用 None 作为值:

import datetime
import streamlit as st

d = st.date_input("When's your birthday", value=None)
st.write("Your birthday is:", d)
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。