要实现这样一个功能。在每个页面加载的时候,获取当前的客户端时区,然后写入数据库    protected void Page_Load(object sender, EventArgs e)
    {
        string timeZone = ...;
        //写入数据库
    }1. .net有一个TimeZone类,但好像得到的是服务器的时区。2. javascript倒是很容易得到,
var zone = new Date().getTimezoneOffset()/60*-1;但我这里页面一加载就要写数据库。我如何得到这个前台值?有谁有解决办法吗?

解决方案 »

  1.   

    1,datetime.now.tostring();
    2,通过一个hidden 设为runat=server
    var zone = new Date().getTimezoneOffset()/60*-1
    zone赋值完毕后 把zone的值赋给hidden,后台可以直接取值
      

  2.   

    1,datetime.now.tostring();
    2,通过一个hidden 设为runat=server
    var zone = new Date().getTimezoneOffset()/60*-1
    zone赋值完毕后 把zone的值赋给hidden,后台可以直接取值
    ====================================================================
    1. DateTime.Now.ToString() 得到的是"2007-7-17 16:10:55",没有半点时区的信息2. 我尝试过,在前台的window.onload事件里给隐藏控件赋值,然后我在后台确实可以取到这个值,但我在Page_Load里就要写数据库了。这样我在Page_Load事件里写string zone = this.hidZone.value得到的是空值
      

  3.   

    1. DateTime.Now.ToString() 得到的是"2007-7-17 16:10:55",没有半点时区的信息=========// js
    new Date().getTimeZoneOffset() // 返回本地时间和 GMT 或者UTC 之间相差的分钟数,可以间接计算时区了
    2. 我尝试过,在前台的window.onload事件里给隐藏控件赋值,然后我在后台确实可以取到这个值,但我在Page_Load里就要写数据库了。这样我在Page_Load事件里写string zone = this.hidZone.value得到的是空值======酱紫肯定不行了,可以考虑通过一个页面刷新跳转// bridge.htmlwindow.onload = function { location.href = "target.aspx?clientdt=" + new Date().getTimeZoneOffset(); }
      

  4.   

    sorry >>>new Date().getTimezoneOffset();
      

  5.   

    可以获取用户ip地址然后通过webserver获取用户所在地然后查找出时区