簡體   English   中英

如何在asp.net mvc中獲取用戶的本地系統日期時間?

[英]How to get user's local sytem's datetime in asp.net mvc?

我想獲取用戶本地系統的日期和時間。

如何在ASP.NET MVC中的控制器中實現這一點?

我認為您需要通過JavaScript捕獲它,然后將其發送回服務器(例如,使用AJAX)。

在JavaScript中: var d = new Date()將捕獲您需要的內容。

http://www.w3schools.com/js/js_obj_date.asp

這是我的解決方案:

注意:需要jQuery。

在_Layout文件的頭部(或所有_Layout文件,如果有多個),在jQuery聲明之后,放入:

@if (Session["UTCOffset"] == null)
    {
        <script type="text/javascript">
            $.post('/Home/SetUTC', { UTC: new Date().getTimezoneOffset() }, function (data) { location.reload(); });
        </script>
    }

在Home控制器(或您使用的任何控制器)中,放入:

public JsonResult SetUTC(int UTC)
        {
            Session["UTCOffset"] = (-1*UTC).ToString();
            return Json(null);
        }

打印日期時間時,請使用(在此示例中為DateTime.Now):

(DateTime.Now).ToUniversalTime().AddMinutes(double.Parse((string)Session["UTCOffset"]??"-300.00")).ToString("MM-dd-yyyy")

-300是中心時間(我的時區)。 如果他們點擊的第一頁上有任何日期,它們將在中央時間顯示。 大約一秒鍾。 然后頁面將被重新加載,事情應該按預期工作。

我敢肯定這可能會以某種方式適應非MVC設置,但我會留給其他人。

在服務器端的asp.net mvc代碼中你無法做到這一點

您可以使用所有時區的DtropDown列表提示用戶,讓他從列表中選擇它 ,第二個選項是在client-javascript中捕獲本地系統時間,並通過AJAX請求或回發將其發送到服務器

實際上還有一種方法 - 您可以捕獲用戶計算機的IP並找出該IP所屬的國家/地區並選擇該國家/地區的TimeZone。 您可以使用MaxMind GeoIP數據庫,它可以幫助您輕松完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM