2017-06-20 64 views
1

我有一個數據庫存儲在UTC的記錄。 C#.NET應用程序讀取數據並填充* .cshtml表服務器端。服務器不知道客戶端的時區,因爲它不是瀏覽器報告的參數,並且沒有登錄名或用戶表單供用戶輸入配置文件並聲明其時區。結果是在瀏覽器中以UTC顯示的表格。 我知道,如果該值是在一個javascript變量,那麼讓瀏覽器做出時區偏移調整是微不足道的。但是,數據以一組帶有文本的TD標籤到達瀏覽器。轉換爲本地客戶端與本地時間與c#

我能想到的任何解決方案將其轉換爲本地時間是不雅的 - 使用JavaScript遍歷表,獲取innerHTML,解析它,調整它並將其放回。這感覺像一個可怕的解決方案。有沒有更好的辦法?將數據作爲JSON對象傳遞並通過javascript動態創建表?再次感覺很笨拙。有沒有更簡單,使瀏覽器把TD>標記之間的值和調整,像

<TD> onsomething="this.innerHTML=adjustTime("2017-06-17 09:00:00");> </TD> 

或者更好的辦法呢?

+0

我會去的JSON/AJAX的解決方案,動態地創建表時數據返回。您可以在請求中傳遞瀏覽器的時區偏移量。得到它就像'var d = new Date()一樣簡單 var offset = d.getTimezoneOffset();' –

+0

你也可以讓JavaScript設置一個查詢參數,它指出當前偏移量是什麼,並用它來渲染本地時間。 – phuzi

+0

感謝Tim/Phuzi - 如果我得到了JAX/JSON路由,那麼我認爲我不需要將瀏覽器的偏移量傳遞給服務器,我可以在本地應用它。我希望可能有一個明顯簡單的方法,但懷疑你是正確的最好的方法來做到這一點。 – gregm

回答

0

處理不同區域中的時間的一般規則是存儲&以UTC爲單位發送值,然後允許「視圖」按適當方式顯示它,即在用戶當前時區中。

我想補充一點,提供了在UTC時間列表的API,然後讓JavaScript客戶端渲染和顯示他們在適當

相關問題