2015-09-15 4 views
0

Простой пример:Как установить dateВведите максимальную текущую дату клиента?

library(shiny) 

shinyApp(
    ui=fluidPage(
    dateInput("date","Choose a date",max=Sys.Date()), 
    textOutput("text") 
),server = function(input, output) { 
    output$text=renderText(as.character(input$date)) 
    } 
) 

, который имеет вход даты. В настоящее время для последней даты установлена ​​системная дата, но я хочу изменить ее на дату клиента. Как мне это сделать?

(Я знаю, что posts говорить о том, как получить данные клиента с помощью JavaScript, но я не знаю, как использовать эти результаты в dateInput объекта.)

ответ

2

Вы можете использовать ту же идею в качестве первый ответ в link вы вывесили и использовать updateDateInput в server.R получить дату клиента и изменить макс вашего dateInput:

shinyApp(
    ui=fluidPage(
    HTML('<input type="text" id="client_time" name="client_time" style="display: none;" > '), 
    tags$script(' 
    $(function() { 
    var time_now = new Date() 
    var month_now=time_now.getMonth()+1 
     $("input#client_time").val(time_now.getFullYear()+"-"+month_now+"-"+time_now.getDate()) 
    });  
'), 
    dateInput("date","Choose a date",max=Sys.Date()), 
    textOutput("text") 
),server = function(input, output,session) { 
    observe({ 
    updateDateInput(session,"date", value = as.Date(input$client_time), max = as.Date(input$client_time)) 
    }) 
    output$text=renderText(as.character(input$date)) 
    } 
) 
Смежные вопросы