【问题标题】:Make shiny's `dateRangeInput`'s `end` always bigger than `start`使闪亮的`dateRangeInput`的`end`总是大于`start`
【发布时间】:2020-01-03 10:00:44
【问题描述】:

我正在使用dateRangeInput 制作一个闪亮的应用程序。我想以这样一种方式进行日期选择,即用户不能在第二个日期输入中选择比第一个日期输入更小的日期。

例如,从上图中,shiny 现在让用户在第一个日期输入中选择 2018 年 7 月 26 日之后,在第二个日期输入中选择 2017 年的日期。我现在想要进行更改,以使第二个日期输入始终在第一个日期输入后的第二天开始,例如用户无法在第二个输入中选择甚至看到 2018 年 7 月 26 日,并且总是在 2018 年 7 月 27 日之后的第二天看到在第一个日期输入中选择 2018 年 7 月 26 日。我已经查看了 dateRangeInput 的文档,那里没有可用的文档。
那么,我该怎么做呢?

【问题讨论】:

  • 我通过一个例子使这个问题更加丰富。立即检查。
  • 请参阅this 相关的 GitHub 问题。

标签: r shiny shiny-reactivity


【解决方案1】:

防止用户选择 start > end 的替代方法可以在 shinyWidgets 中找到:

library(shiny)

ui <- fluidPage(
  shinyWidgets::airDatepickerInput("daterange", "Date range:",
                                   range = TRUE,
                                   value = c("2010-01-01", "2001-12-31")),
  verbatimTextOutput("res")
)
server <- function(input, output, session) {
  output$res <- renderPrint({
    paste("Start at", input$daterange[1], "and end at", input$daterange[2])
  })
}
shinyApp(ui, server)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多