现在的位置: 首页 > 综合 > 正文

时区转换

2013年10月21日 ⁄ 综合 ⁄ 共 2229字 ⁄ 字号 评论关闭

获取用户本地时间与标准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

抱歉!评论已关闭.