Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/burgerga/shinyTime
A timeInput widget for Shiny
https://github.com/burgerga/shinyTime
hacktoberfest r r-package shiny timepicker widget
Last synced: 28 days ago
JSON representation
A timeInput widget for Shiny
- Host: GitHub
- URL: https://github.com/burgerga/shinyTime
- Owner: burgerga
- License: gpl-3.0
- Created: 2016-07-17T05:52:50.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-17T19:09:32.000Z (9 months ago)
- Last Synced: 2024-03-29T14:22:04.011Z (9 months ago)
- Topics: hacktoberfest, r, r-package, shiny, timepicker, widget
- Language: R
- Homepage: https://burgerga.github.io/shinyTime/
- Size: 548 KB
- Stars: 28
- Watchers: 6
- Forks: 2
- Open Issues: 6
-
Metadata Files:
- Readme: README.Rmd
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-shiny-extensions - shinyTime - A timeInput widget for Shiny. (UI Components / Special Input)
- jimsghstars - burgerga/shinyTime - A timeInput widget for Shiny (R)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```[![R-CMD-check](https://github.com/burgerga/shinyTime/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/burgerga/shinyTime/actions/workflows/R-CMD-check.yaml)
[![](http://www.r-pkg.org/badges/version/shinyTime)](https://cran.r-project.org/package=shinyTime)
[![](http://cranlogs.r-pkg.org/badges/last-month/shinyTime)](https://cran.r-project.org/package=shinyTime)## Overview
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.## Installation
```{r eval = FALSE}
# Install from CRAN
install.packages("shinyTime")
```## Usage
As the `shinyTime` package mimics the existing shiny functionality, using the package is easy:
```{r eval = FALSE}
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`](https://www.rdocumentation.org/packages/base/topics/DateTimeClasses) (in the same way as setting
a date in `dateInput` can be done with a `Date` object), but also with an [`hms::hms`](https://hms.tidyverse.org/reference/hms.html) 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:```{r eval=FALSE}
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](https://burgerga.shinyapps.io/shinyTimeExample/) or try the
`shinyTime::shinyTimeExample()` function.