2014-02-05 68 views
4

我知道我必須設置TimeZone某處,但我不知道如何從用戶那裏「獲取」當前時區並顯示(動態?)日期正確的偏移量。Grails - 考慮到時區用戶的顯示日期

這是我的代碼:

域:

class MyClass { 

    Date myDate 

} 

控制器:

def unixSeconds = 1386760029 
Date date = new Date(unixSeconds*1000L) 

GSP:

<g:formatDate format="yyyy-MM-dd HH:mm" date="${MyClassInstance.myDate}" timeZone="${TimeZone.getTimeZone("GMT")}"/> 

回答

2

你不能讓用戶時區,因爲這信息不是在請求中發送。

您可以嘗試使用GeolocationGeoIP來獲取用戶位置以檢索用戶國家,然後設置相應的時區。

另一種方式是讓使用JavaScript getTimezoneOffset() Method UTC與本地時間之間的時區差異:

var d = new Date() 
var n = d.getTimezoneOffset(); 

但它更容易手動讓用戶設置的時區。

+0

我爲用戶''添加了這個,但是當試圖將該值設置爲例如「Canada/Central」時,默認選擇不會改變。 – Jils

+0

該標籤僅創建一個包含所有時區的下拉列表,但您必須將該值存儲在某處以便稍後重用(在會話中或數據庫中,如果您有用戶帳戶)。 –

相關問題