Skip to content
A timeInput widget for Shiny
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status

This package provides a timeInput widget for Shiny. This widget allows intuitive time input in the [hh]:[mm]:[ss] or [hh]:[mm] (24H) format by using a separate numeric input for each time component. Setting and getting of the time in R is done with 'DateTimeClasses' objects.


As the shinyTime package mimics the existing shiny functionality, using the package is easy. Some examples of adding an input widget to the UI:

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")),
  # Use %H:%M format
  timeInput("time4", "Time:", seconds = FALSE)

Note that setting an inital value is done with a DateTime object, in the same way as setting a date in dateInput can be done with a Date object.

The value retrieved will also be a DateTime object. You need to convert it to character to be able to print the time, as the default character representation does not include it. An 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 fully functional app go to the ShinyApps example (can be a bit slow) or try the shinyTime::shinyTimeExample() function after installing the package with install.packages('shinyTime').

You can’t perform that action at this time.