DT十进制时间到时钟时间转换

时间:2017-09-06 18:58:24

标签: r time shiny dt

我正在使用闪亮的DT来显示当前的小数时间。

此处示例:

library(shiny)
library(DT)
library(dplyr)
library(magrittr)

  # server-side processing

  base<-as.POSIXct('2000-01-01 00:00:00 EST')

  mtcars2 = mtcars[, 5:6]
  mtcars2 %<>% 
    mutate(drat = base+(3600*drat),
           wt = base+(3600*wt))

    DT::datatable(mtcars2,
        extensions = 'Buttons',
        options = list(
          scrollX = TRUE,
          scrollY = TRUE,
          pageLength = 10,
          dom = 'Blfrtip',
          buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
        )
  ) %>% 
  formatDate( 1:2,method = 'toLocaleString', params = list('en-US',year = NULL))

我一直在考虑使用toTimeStringDT's functionsformatDate()部分中的类似方法。我怎样才能将这个从小数时间“2.3”转换为“2:18”?我找到了this question 之后我将DT升级到最新的dev版本并包含params=,但是找不到必要的组合来选择HH:MM是不成功的。

1 个答案:

答案 0 :(得分:1)

我认为您无法通过formatDate()实现这一目标,因为我在JavaScript中看不到任何支持抑制任何时间组件的日期转换方法。例如,如果您阅读the documentation of toLocalString,则可以看到year组件的唯一可能值为numeric2-digit,您无法将其设置为{{1}抑制它。

null格式显示日期/时间数据的最直接方法是在将数据传递给HH:MM之前正确格式化数据,例如,使用R函数DT::datatable()

我认为通过在JavaScript中提供行或列回调函数可以实现您的目标,但它会有点复杂。