asp.net如何得到客户端时区
要实现这样一个功能。在每个页面加载的时候,获取当前的客户端时区,然后写入数据库
protected void Page_Load(object sender, EventArgs e)
{
string timeZone = ...;
//写入数据库
}
1. .net有一个TimeZone类,但好像得到的是服务器的时区。
2. javascript倒是很容易得到,
var zone = new Date().getTimezoneOffset()/60*-1;但我这里页面一加载就要写数据库。我如何得到这个前台值?
有谁有解决办法吗?
------解决方案--------------------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 ",没有半点时区的信息
=========
// js
new Date().getTimeZoneOffset() // 返回本地时间和 GMT 或者UTC 之间相差的分钟数,可以间接计算时区了
2. 我尝试过,在前台的window.onload事件里给隐藏控件赋值,然后我在后台确实可以取到这个值,但我在Page_Load里就要写数据库了。这样我在Page_Load事件里写string zone = this.hidZone.value得到的是空值
======
酱紫肯定不行了,可以考虑通过一个页面刷新跳转
// bridge.html
window.onload = function { location.href = "target.aspx?clientdt= " + new Date().getTimeZoneOffset(); }
------解决方案--------------------可以获取用户ip地址然后通过webserver获取用户所在地然后查找出时区