为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NET中获取客户端日期和时间?

如何在ASP.NET中获取客户端日期和时间?

www说 2019-12-02 13:15:09
我使用DateTime.Now服务器时会得到日期和时间。有什么方法可以在ASP.NET中获取客户端日期和时间?
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我喜欢使用浏览器/系统时间和时区或让他们选择其时区的想法。在过去的项目中,我使用了以下内容:


<script language="javascript">

function checkClientTimeZone()

{

    // Set the client time zone

    var dt = new Date();

    SetCookieCrumb("ClientDateTime", dt.toString());


    var tz = -dt.getTimezoneOffset();

    SetCookieCrumb("ClientTimeZone", tz.toString());


    // Expire in one year

    dt.setYear(dt.getYear() + 1);

    SetCookieCrumb("expires", dt.toUTCString());

}


// Attach to the document onload event

checkClientTimeZone();

</script>

然后在服务器上:


/// <summary>

/// Returns the client (if available in cookie) or server timezone.

/// </summary>

public static int GetTimeZoneOffset(HttpRequest Request)

{

    // Default to the server time zone

    TimeZone tz = TimeZone.CurrentTimeZone;

    TimeSpan ts = tz.GetUtcOffset(DateTime.Now);

    int result = (int) ts.TotalMinutes;

    // Then check for client time zone (minutes) in a cookie

    HttpCookie cookie = Request.Cookies["ClientTimeZone"];

    if (cookie != null)

    {

        int clientTimeZone;

        if (Int32.TryParse(cookie.Value, out clientTimeZone))

            result = clientTimeZone;

    }

    return result;

}

或者,您可以将其作为URL参数传递并在Page_Load中进行处理:


http://host/page.aspx?tz=-360

请记住要使用分钟,因为并非所有时区都是整个小时。


查看完整回答
反对 回复 2019-12-02
  • 3 回答
  • 0 关注
  • 873 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信