我想知道是否有一些聪明的方法可以让客户端获取当前时间和时区,以便在server.RShiny 应用程序的一部分中使用它。如果没有,那么最简单的方法是什么?
此代码应向我显示昨天作为开始和结束日期,并以今天作为最后一个选项。它工作了几个月,我没有改变任何东西,但几周以来我得到了错误的日期。
它显示了我前天是否在本地运行此代码、在我的 ubuntu 服务器上运行此代码或连接到运行此代码的闪亮服务器。
Sys.setenv(TZ='GMT')
shinyApp(
ui <- basicPage(
dateRangeInput("daterange", "Daterange",start = Sys.Date()-1
,end = Sys.Date()-1,max=Sys.Date())
),
server <- function(input,output){}
)
Run Code Online (Sandbox Code Playgroud)
我发现这个问题,In Shiny for R, Why does Sys.Date() return Tuesday's date inside a dateInput? ,并且 start=NULL,end=NULL 我今天得到了正确的结果,但由于我昨天需要,这对我来说不是解决方案。
如果我在控制台中运行 Sys.Date() ,它会在本地和服务器上为我提供正确的日期。仅当我将其作为闪亮的应用程序运行时才会出现此问题。
感谢奥斯卡·福斯莫(Oskar Forsmo)在应用程序中获取系统(“日期”)的建议,我尝试了一些,这给了我正确的日期和时间。
事情变得更加奇怪:
library(shiny)
values <- reactiveValues()
shinyApp(
ui <- basicPage(
uiOutput("timerange"),
textOutput( "today" )
),
server <- function(input,output){
isolate(values$day <- Sys.Date())
output$today <- renderText({
as.character(values$day-1)
})
output$timerange <- renderUI({ dateRangeInput("daterange", "Daterange",start = values$day-1
,end = values$day-1,max=values$day) }) …Run Code Online (Sandbox Code Playgroud)