当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在ASP.NET中获取客户端日期和时间?》经验,为你挑选了3个好方法。

当我使用时,DateTime.Now我从服务器的角度来看日期和时间.有没有办法在ASP.NET中获取客户端的日期和时间?



1> Ryan..:

我喜欢使用浏览器/系统时间和时区或让他们选择时区的想法.在过去的项目中,我使用了这样的东西:


然后在服务器上:

/// 
/// Returns the client (if available in cookie) or server timezone.
/// 
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

只记得使用分钟,因为并非所有时区都是整个小时.



2> Simon Johnso..:

我要做的是创建一个隐藏的输入字段,然后将Javascript例程连接到表单的onsubmit事件.此例程将使用客户端计算机上的时间填充隐藏字段.

隐藏字段可以通过使用HTML控件"HtmlInputHidden"类与ASP.NET一起使用.您只需为输入控件提供runat ="server"属性,就像任何其他服务器端控件一样.

然后,当表单回发时,服务器可以读出此时间.如果您需要在许多地方执行此操作,您甚至可以将其包装在服务器控件中.

或者,您可以使用AJAX执行此操作,但实现将取决于您使用的库.


而不是做所有这些,只需使用Javascript设置cookie,存储浏览器时区.然后后端可以随时读取该cookie.

3> Stephen Wrig..:

如果您要维护用户个人资料,则可以要求他们告诉他们其时区,然后进行必要的计算。

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有