You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的Shiny组件输入小时和分钟?

获取Shiny仪表盘的小时和分钟输入

1. 扩展内置日期输入组件

你不用额外找组件,原生的dateInput就支持同时选择日期和时分,只需设置timeFormat参数开启时间选择,还能通过minuteStep控制分钟的可选间隔:

ui <- fluidPage(
  dateInput(
    inputId = "datetime",
    label = "选择日期和时间",
    value = Sys.time(),
    timeFormat = "%H:%M",
    minuteStep = 15 # 可选,设置分钟间隔为15分钟
  )
)

server <- function(input, output) {
  observe({
    print(input$datetime) # 输出包含日期、小时、分钟的POSIXct格式对象
  })
}

shinyApp(ui, server)

2. 专门的时分输入组件

如果只需要单独选择时分(不需要日期),可以借助shinyWidgets包的timeInput组件,它是专门为时分输入设计的:

library(shinyWidgets)

ui <- fluidPage(
  timeInput(
    inputId = "time",
    label = "选择时间",
    value = Sys.time(),
    seconds = FALSE # 隐藏秒数,仅保留小时和分钟选择
  )
)

server <- function(input, output) {
  observe({
    print(input$time) # 输出HH:MM格式的字符串,可自行转换为时间对象
  })
}

shinyApp(ui, server)

3. 无额外依赖的自定义方案

如果不想安装额外包,也可以用两个sliderInput分别实现小时和分钟的选择,体验也很直观:

ui <- fluidPage(
  sliderInput("hour", "小时", min = 0, max = 23, value = lubridate::hour(Sys.time())),
  sliderInput("minute", "分钟", min = 0, max = 59, value = lubridate::minute(Sys.time()), step = 5),
  verbatimTextOutput("selected_time")
)

server <- function(input, output) {
  output$selected_time <- renderPrint({
    paste0(input$hour, ":", sprintf("%02d", input$minute)) # 格式化输出两位分钟数
  })
}

shinyApp(ui, server)

关于input_text_area

完全没必要用input_text_area来输入时分,它是为多行文本输入设计的,用来输入时间体验极差,属于错误的选择方向。

内容的提问来源于stack exchange,提问作者murcielago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:42:08