我想知道是否有一些聪明的方法可以让客户端获取当前时间和时区,以便在server.R
Shiny 应用程序的一部分中使用它。如果没有,那么最简单的方法是什么?
我发现了一种有效的方法,它只是对在应用程序加载时读取 javascript 变量到闪亮/R 的stackoverflow 答案的一个小修改。它不会检索实际时区,而是检索时区偏移量。
在ui.R中
HTML('<input type="text" id="client_time" name="client_time" style="display: none;"> '),
HTML('<input type="text" id="client_time_zone_offset" name="client_time_zone_offset" style="display: none;"> '),
tags$script('
$(function() {
var time_now = new Date()
$("input#client_time").val(time_now.getTime())
$("input#client_time_zone_offset").val(time_now.getTimezoneOffset())
});
')
Run Code Online (Sandbox Code Playgroud)
上面创建了两个div
s,javascript 代码检索客户端时间和时区偏移量并将它们放入div
s 中。
在服务器.R中
client_time <- reactive(as.numeric(input$client_time) / 1000) # in s
time_zone_offset <- reactive(as.numeric(input$client_time_zone_offset) * 60 ) # in s
Run Code Online (Sandbox Code Playgroud)
上面创建了两个可以在服务器代码中使用的反应变量。为了便于处理,我还input$client_time
从 ms 转换为 s,input$client_time_zone_offset
从 min 转换为 s。
归档时间: |
|
查看次数: |
2360 次 |
最近记录: |