5
votes

my problem is when i use datatable on my computer and on the server formatDate is changing i know i'm using method = 'toLocaleDateString' maybe it's not the good method

on my computer it give me the format i want :

1 février 2000 

21 mars 2000

on shiny it give me :

01/02/2000

21/03/2000

local computer and server have Sys.timezone()

[1] "Europe/Paris"

im trying to do it like this

a <-structure(list(timestamp = structure(c(949363200, 953596800, 
                                         961286400, 962582400,     965347200,     969667200), 
                                       class = c("POSIXct",  "POSIXt"), tzone = "UTC"), 
                 anoms = c(1, 1, 1, 1, 1, 2), syndrome = c("Acrosyndrome", 
                                                       "Acrosyndrome", "Acrosyndrome", "Acrosyndrome", "Acrosyndrome", 
                                                       "Acrosyndrome")), .Names = c("timestamp", "anoms", "syndrome"
                                                       ), row.names = c(NA, 6L), class = "data.frame")

datatable(a) %>% formatDate(  1, method = 'toLocaleDateString')
a

Thank you

1
toDateString might give you what you want, except that the day of the week is added to the output; this is highly dependent on your web browser -- different web browsers (and language settings) may give you different output.Yihui Xie
toDateString give me the english format Tue Feb 01 2000 is there a way to force the french one without toLocaleDateString or something like date.toLocaleDateString('fr-FR') from developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…s.brunel
Good idea. Implemented in the dev version of DT.Yihui Xie

1 Answers

6
votes

With the development version of DT (>= 0.2.2) on Github, you can pass additional parameters to the date conversion method, e.g.

datatable(a) %>%
  formatDate(1, method = 'toLocaleDateString', params = list('fr-FR'))

Or more parameters:

datatable(a) %>% formatDate(
  1, method = 'toLocaleDateString',
  params = list('fr-FR',  list(year = 'numeric', month = 'long', day = 'numeric'))
)