如何在asp.net mvc中获取用户的本地系统日期时间?

Gau*_*dey 9 asp.net-mvc

我想获取用户本地系统的日期和时间.

如何在ASP.NET MVC中的控制器中实现它?

Jus*_*tin 7

我认为您需要通过JavaScript捕获它,然后将其发送回服务器(例如,使用AJAX).

在JavaScript中:var d = new Date()将捕获您需要的内容.

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


小智 5

这是我的解决方案:

注意:需要jQuery.

在_Layout文件的头部(或所有_Layout文件,如果有多个),在jQuery声明之后,放入:

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

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

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

打印日期时间时,请使用(在此示例中为DateTime.Now):

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

-300是中心时间(我的时区).如果他们点击的第一页上有任何日期,它们将在中央时间显示.大约一秒钟.然后页面将被重新加载,事情应该按预期工作.

我敢肯定这可能会以某种方式适应非MVC设置,但我会留给其他人.