• 服务器导出服务器时间转换浏览器端时区


    场景:数据库存储的是服务器时间,需要根据浏览器端客户的时区导出时间。
    图示:
    C<----- offsetClientTime ----->B<----- offsetServerTime ----->A
    server------------------------------utc-------------------------------client

    1. 客户端获取时间差:

       function getTimeOffset(){
         var now = new Date(); 
         var offsetHours = now.getHours()-now.getUTCHours(); //A - B
         return offsetHours;
       }
       
       var offsetClientTime = getTimeOffset();
       //得到↑,传递给服务器
      
    2. 服务端计算时间差:

       var utcNow = DateTime.UtcNow;
       var serverNow = DateTime.Now;
       var offsetServerTime = utcNow.Hour - serverNow.Hour; //B - C
      
    3. 计算数据库
      从数据库取出的时间减去两个时间差

       var dbTime = ....;
       var outputTime = dbTime.AddHours(offsetServerTime+offsetClientTime)
      
    4. 备注
      时区有半小时的情况,所以offsetHours计算应该改为按半小时更合适(如果按照分钟或者秒传递至服务器端会有误差)

  • 相关阅读:
    return, break, continue
    equals 与 ==
    过滤器
    通过域名区分虚拟主机
    通过端口区分不同虚拟机
    Nginx实现反向代理
    Nginx安装
    poj2387 Til the Cows Come Home(Dijkstra)
    hdoj2544 最短路(Dijkstra || Floyd || SPFA)
    最小生成树
  • 原文地址:https://www.cnblogs.com/liqipeng/p/4918125.html
Copyright © 2020-2023  润新知