knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
shinyTime provides a timeInput
widget for Shiny. This widget allows intuitive time input in the
hh:mm:ss
or hh:mm
(24-hour) format by using a separate numeric input for each time
component. Setting and getting of the time in R is done with date-time objects.
# Install from CRAN install.packages("shinyTime")
As the shinyTime
package mimics the existing shiny functionality, using the package is easy:
ui <- fluidPage( # Using the default time 00:00:00 timeInput("time1", "Time:"), # Set to current time timeInput("time2", "Time:", value = Sys.time()), # Set to custom time timeInput("time3", "Time:", value = strptime("12:34:56", "%T")), # Set to custom time using hms timeInput("time4", "Time:", value = hms::as_hms("23:45:07")), # Set to custom time using character string timeInput("time5", "Time:", value = "21:32:43"), # Use hh:mm format timeInput("time6", "Time:", seconds = FALSE), # Use multiples of 5 minutes timeInput("time7", "Time:", minute.steps = 5) )
Note that setting an initial value can be done with
date-time
(in the same way as setting
a date in dateInput
can be done with a Date
object), but also with an hms::hms
object or character string in hh:mm:ss
format.
The value retrieved will be a date-time
object (POSIXlt
). You need to convert it to character to be able
to show the time, as the default character representation does not include time. For example:
server <- function(input, output) { # Print the time in hh:mm:ss everytime it changes observe(print(strftime(input$time1, "%T"))) # Print the time in hh:mm everytime it changes observe(print(strftime(input$time4, "%R"))) }
For a demo, visit the online example app or try the
shinyTime::shinyTimeExample()
function.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.