获取用户本地时间与标准UTC时间的时差:
<script type="text/javascript">
function getMyDate(){
var myoffset = new Date();
var mydatetime = new Date();
//alert(-offset.getTimezoneOffset()); //返回格林威治时间和本地时间之间的时差,以分钟为单位
//alert(dtUtc.getUTCDate());
//alert(timeDifferent);
document.getElementById("clientoffset").value = -myoffset.getTimezoneOffset();
document.getElementById("clienTime").value = mydatetime.toLocaleString();
//alert(mydatetime.toLocaleString());
}
</script>
后台代码:
protected void Button1_Click(object sender, EventArgs e)
{
//Response.Write("SSS");
clientoffset = Convert.ToInt32(Request.Form["clientoffset"]);
clienTime = Request.Form["clienTime"].ToString();
DateTime clienT = DateTime.Parse(clienTime);
TimeSpan targetT = new TimeSpan(+8,0,0);
//Response.Write("<br/>客户端本地时间:" + clienT.ToString() + "<br/>");
//Response.Write("<br/>客户端本地时间差:" + clientoffset.ToString() + "<br/>");
changeTimeTo(clientoffset, clienT, targetT);
}
#region
/// <summary>
/// 将当前客户端时间转化为某一标准时间
/// </summary>
/// <param name="ts">客户端时间与标准UTC时间差值</param>
/// <param name="clienT">客户端当前时间</param>
/// <param name="targetT">转化为某一目标时区与标准UTC时间差值</param>
protected string changeTimeTo(int ts,DateTime clienT,TimeSpan targetT)
{
/*DateTime tdUtc = new DateTime();
tdUtc = DateTime.UtcNow;
Response.Write("标准UTC时间:" + tdUtc.ToString() + "<br/>");
DateTime tdLocal = DateTime.Now;
Response.Write("服务器本地时间:" + tdLocal.ToString() + "<br/>");
TimeSpan timeDifference = tdLocal - tdUtc;
Response.Write("服务器本地时间差:" + timeDifference.ToString() + "<br/>");*/
//DateTime changeTime =
//Response.Write("服务器本地时间差转分钟显示形式:" + Convert.ToInt32(targetT.TotalMinutes));
int spMinites = Convert.ToInt32(targetT.TotalMinutes) - ts;
DateTime changeTime = new DateTime();
changeTime = clienT.AddMinutes(spMinites);
Response.Write("北京时间差-客户时间差:" + spMinites + "<br/>");
Response.Write("客户端与标准时间差:" + ts + "<br/>");
Response.Write("客户端时间:" + clienT.ToString() + "<br/>");
Response.Write("北京时间与标准时间差:" + Convert.ToInt32(targetT.TotalMinutes) + "<br/>");
Response.Write("客户端时间转换为北京时间:" + changeTime.ToString());
return changeTime.ToString();
}
#endregion