首页 > 其他分享 >时间戳时区问题解决方法

时间戳时区问题解决方法

时间:2024-02-27 10:00:09浏览次数:17  
标签:zone 60 currentDate 时间 time 解决 服务器 时区 方法

在大家开发时会遇到这种情况:

服务器是以东八时区为准(即中国标准时间),但是客户端会在不同地方,比如说雅典 开罗(+2),格陵兰(-3),夏威夷(-10),当客户端选择某一个时间后,传递给服务器的时间戳,是以当地时区来解析的时间戳,这样就会出现一个时间差的问题,从而造成时间不准确。下面我们就来解决这种问题。

解决思路:服务器是北京时间,这个是无法改变的。改变的就是客户端的时间戳。首先确定客户端时区,获得当地时间戳后,加上或减去时间差值,就可以得到北京时间戳。在传递给服务器。

传递给服务器后,服务器返回的也是北京时间戳,这个时候就需要反解析一下这个时间戳。还是先确认时区,再用服务器返回的北京时间戳加上或减去时间差值,得到当地时间戳,再解析渲染页面等后续操作。

获取本地时间后转换成北京时间:

function getBeijingtime(d) {
    //获得当前运行环境时间
    var date = new Date(d);
    currentDate = date.getTime();
    // 算得时区
    var time_zone = -date.getTimezoneOffset() / 60;
    // console.log(time_zone)
    if (time_zone < 0) {
        time_zone = Math.abs(time_zone) + 8;
        currentDate += time_zone*60*60*1000
    } else {
        if(time_zone < 8 && time_zone > 0){
            time_zone = time_zone - 8;
            currentDate += Math.abs(time_zone*60*60*1000)
        }else{
            time_zone = time_zone - 8;
            currentDate -= Math.abs(time_zone*60*60*1000)
        }
    }
    return currentDate;
}

北京时间解析成当地时间:

标签:zone,60,currentDate,时间,time,解决,服务器,时区,方法
From: https://www.cnblogs.com/jickma/p/13098690.html

相关文章

  • VMware Linux虚拟机无网络的解决方案 --- 不显示网卡
    我的VMwareUbuntu虚拟机挂起休眠后,再次唤醒后会出现连不上网、显示不了网卡的问题。我认为这可能是系统问题。针对这一种问题的解决方案如下:1、将虚拟机网络适配器改为主机模式;2、在Ubuntu指令窗口中依次输入以下指令:sudoservicenetwork-managerstopsudorm/var/lib/Ne......
  • Qt Virtual Keyboard C++集成与实现(解决模态对话框键盘失效问题)
    一.Qt模态对话框先让我们来看看对话框的几种特性:1.Qt::NonModaThewindowisnotmodalanddoesnotblockinputtootherwindows.2.Qt::WindowModalThewindowismodaltoasinglewindowhierarchyandblocksinputtoitsparentwindow,allgrandparentwin......
  • Python numpy.full函数方法的使用
    ​ NumPy(NumericalPython的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中full方法的使用。参考文档:Pythonnumpy.full函数方法的使用-CJ......
  • 系统科学方法概论第一章读后感
    读完《系统科学方法概论》的第一章,我对系统科学方法有了初步的了解和认识。这一章为我开启了一扇理解复杂系统的大门,让我意识到系统思维在解决现实问题中的重要性。通过第一章的学习,我明白了系统科学方法是一种综合性的研究方法,它旨在研究和分析复杂系统的结构、行为和演化。系统......
  • 读《系统科学方法概论》第五章有感
    第五章——自组织系统方法1.自组织系统理论的历史发展早在19世纪70年代开始人类对自组织现象形成机制和发展规律的考察,经过100年,积累了一些成果。1969年,耗散结构理论;1972年,突变理论;1976,协同学;自组织系统目前仍在发展,随着研究逐渐深入,相信距离实践的时间在到来。2.耗散理论结构......
  • Python的魔术方法
    一、什么是魔术方法1、魔术方法是一组具有特殊命名和行为的特殊方法,它们允许您自定义类的行为。这些方法使用双下划线(__)作为前缀和后缀,因此也被称为双下划线方法或特殊方法。2、需要掌握每个方法什么时候触发或者执行二、常见的魔术方法1、__init__方法初始化方法,当一个类被......
  • 读《系统科学方法概论》第四章有感
    第四章——控制方法本章内容主要是对控制论展开学习。1.控制论史从古代信息论的产生到近代控制论萌芽,再讲到现代控制论的建立和发展,现代控制论的建立和发展主要是同计算机科学、信息科学以及神经生理学的建立和发展联系在一起。申农信息论主要是关于信息传递的理论。2.控制和......
  • K8S 陈述式资源管理方法
    K8S陈述式资源管理方法.kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口2.kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径3.ku......
  • 面向对象编程的绑定方法、掩藏属性、装饰器
    一、绑定方法1、绑定给类的方法(@classmethod)12345678910111213141516171819class Oracle():    def __init__(self,ip,port):        self.ip = ip        self.port = port     @classmethod  #该方法......
  • Git 教程:解密 .gitignore 文件、合并分支、解决冲突、及 Git 帮助
    Git帮助如果你忘记了命令或命令的选项,你可以使用Git帮助。在命令行中,有几种不同的使用帮助命令的方式:gitcommand-help-查看特定命令的所有可用选项githelp--all-查看所有可能的命令让我们看看不同的命令。Git-help查看特定命令的选项任何时候,如果你需要帮助......