2015-04-22 54 views
0

我正在使用Dan Grossman的daterangepicker來顯示用戶選擇的日期時間範圍。不幸的是,選擇並傳遞給後端的日期時間是UTC,並且正在保存到數據庫。我需要設置daterangepicker根據之前選擇的時區顯示本地時間。有誰知道如何處理這個? 我嘗試添加timezone選項(「01:00」),但它似乎沒有任何區別。如何設置daternagepicker以允許本地日期時間選擇,而不是utc

$('form .date_available').daterangepicker({ 
    timeZone: "01:00", 
    timePicker: true, 
    timePickerIncrement: 30, 
    minDate: currentDate, 
    minTime: currentTime, 
    format: 'MM/DD/YYYY h:mm A', 
    formatTime: 'h:mm A', 
    formatDate: 'MM/DD/YYYY' 
}); 

回答

0

您需要設置時區在配置服務器/ application.rb中

config.time_zone = 'Pacific Time (US & Canada)' 

,或者你有一個時區變更爲用戶可以添加以下application_controller.rb,和你應該保存設置用戶時區:

around_filter :user_time_zone 

def user_time_zone(&block) 
    if user_signed_in? 
    Time.use_zone(current_user.time_zone, &block) 
    else 
    Time.use_zone('Pacific Time (US & Canada)', &block) 
    end 
end 
+0

感謝Mohamed但Rails在UTC保存'created_at'時間正確,唯一的問題是這種形式。選擇的日期時間應以本地時間的形式發送到服務器,並在後端轉換爲UTC或在本地時間之前將其從UTC轉換爲UTC,然後再發送到服務器。例如,當用戶在時區+1:00的本地時間在日期選擇器中選擇3.pm時,應將其保存爲db,因爲UTC爲2.pm,但它將保存爲3.pm UTC,因爲所選日期在被選爲UTC。 – evoo

+1

是的,我明白你可以做像下面這樣的東西在JavaScript中玩時區而不是那麼好玩。 dt = DateTime.now => 2010年12月20日星期一18:59:43 +0100 dt = dt.change(:offset =>「+0000」) => 2010年12月20日星期一18:59: 43 +0000 這將改變偏移量而不影響日期和時間。 –

+0

即使作爲一種臨時解決方案,這似乎也能正常工作。謝謝! – evoo

相關問題