Asp.net mvc 如何将客户端时区偏移量获取到razor视图中,以显示从UTC转换的时间

Asp.net mvc 如何将客户端时区偏移量获取到razor视图中,以显示从UTC转换的时间,asp.net-mvc,razor,timezone,Asp.net Mvc,Razor,Timezone,我使用MVC 5在Razor视图中执行以下操作: foreach(var item in Model) { @{string dt = item.DateExpiring.ToString();} @dt } 我需要@dt变量显示为客户端的本地日期时间。 我的想法是使用Javascript获取客户端的本地时区偏移量(以分钟为单位),并将其传递给item.DateExpiring值,动态转换,这样我就可以将上面的内容更改为: @{string dt = item.DateExpiring

我使用MVC 5在Razor视图中执行以下操作:

foreach(var item in Model)
{
    @{string dt = item.DateExpiring.ToString();} @dt
}
我需要@dt变量显示为客户端的本地日期时间。 我的想法是使用Javascript获取客户端的本地时区偏移量(以分钟为单位),并将其传递给item.DateExpiring值,动态转换,这样我就可以将上面的内容更改为:

@{string dt = item.DateExpiring.AddMinutes({someJavascriptVariableHere}).ToString();}@dt
两个问题:

  • 这可能吗
  • 怎么做?(意思是,如何将JS解析/转换为我需要的双精度)

  • 提前感谢。

    如果您想在本地显示datetime,请检查此处 就你而言:

    foreach(var item in Model) {
    <script type="text/javascript">
      var strDate = new String('@item.DateExpiring.ToString("MM/dd/yyyy hh:mm:ss tt") UTC');
      var localTime = new Date(strDate);
      document.write(localTime.toLocaleString());
    </script>
    }
    
    foreach(模型中的变量项){
    var strDate=新字符串('@item.DateExpiring.ToString(“MM/dd/yyyy hh:MM:ss tt”)UTC');
    var localTime=新日期(标准日期);
    document.write(localTime.toLocalString());
    }
    
    C#代码在服务器中以先执行后执行的方式执行。当浏览器从服务器收到响应(执行c#代码的结果)时,javascript代码将在稍后执行。您可以通过以下代码从客户端发送时区:new Date()。getTimezoneOffset()确定,因此对该问题进行了调整。当调用实际的MVC控制器时,我是否可以通过某种方式从浏览器(客户端)发送或获取timezoneoffset,以便计算正确的时间?例如,如果我调用,它将返回一个时间列表。我该怎么做:1。从客户端浏览器获取timeZoneOffset并在控制器中使用它,以便我可以调整响应中的时间?再一次。提前感谢您的建议/帮助。