工作中用到将美国的格格时区转换成北京时间,研究了一下总结了一下方式用来转换。 根据时间差得到下面的转换时间的差值,然后进行统一处理。

export function utcChangeBeijing(date) {

var time_zone = Number(localStorage.getItem('TimeZone')) === 0 ? 1 : Number(localStorage.getItem('TimeZone'))

if (date == '' || date == null) {

return ''

} else {

switch(time_zone) {

case 1:

// 处理北京时间

return TimeFormat(date, 0)

break;

case 2:

// 东部时间 有夏时令和冬时令 相差12个小时, 冬时令相差13个小时

if (IsSumber(date, 1)) {

return TimeFormat(date, 12)

} else {

return TimeFormat(date, 13)

}

case 3:

// 中部时间 有夏时令和冬时令 相差13个小时, 冬时令相差14个小时

if (IsSumber(date, 1)) {

return TimeFormat(date, 13)

} else {

return TimeFormat(date, 14)

}

case 4:

// 山地时间 有夏时令和冬时令 夏时令 相差14个小时, 冬时令相差15个小时

if (IsSumber(date, 1)) {

return TimeFormat(date, 14)

} else {

return TimeFormat(date, 15)

}

case 5:

// 亚利桑那时间 相差15个小时

return TimeFormat(date, 15)

case 6:

// 太平洋时间 有夏时令和冬时令 夏时令 相差15个小时, 冬时令相差16个小时

if (IsSumber(date, 1)) {

return TimeFormat(date, 15)

} else {

return TimeFormat(date, 16)

}

case 7:

// 阿拉斯加时间 有夏时令和冬时令 夏时令 相差17个小时, 冬时令相差18个小时

if (IsSumber(date, 1)) {

return TimeFormat(date, 17)

} else {

return TimeFormat(date, 18)

}

case 8:

// 夏威夷时间 没有夏时令和冬时令 相差18个小时

return TimeFormat(date, 18)

}

}

复制代码

}

#格式化时间转换成YYYY-MM-DD hh-mm-ss,可能方式有点笨拙。就这么解决了。

function TimeFormat(date, timeNumber) {

date = new Date(date)

var time = date.getTime() + timeNumber * 3600 * 1000

var dateNow = new Date(time);

var Y = dateNow.getFullYear() + '-';

var M = (dateNow.getMonth() + 1 < 10 ? '0' + (dateNow.getMonth() + 1) : dateNow.getMonth() + 1) + '-';

var D = (dateNow.getDate() <10 ) ? '0' + dateNow.getDate() + ' ' : dateNow.getDate() + ' ';

var h = (dateNow.getHours() < 10) ? '0' + dateNow.getHours() + ':' : dateNow.getHours() + ':';

var m = (dateNow.getMinutes() < 10) ? '0' + dateNow.getMinutes() + ':' : dateNow.getMinutes() + ':';

var s = (dateNow.getSeconds() < 10) ? '0' + dateNow.getSeconds() : dateNow.getSeconds();

return Y + M + D + h + m + s;

复制代码

}

#判断是东部时区还是西部时区,默认按照东部时区处理了。后台用的php竟然能全部兑上。好神奇

function IsSumber(date, isEast) {

date = new Date(date)

var start = new Date(date.getTime());

start.setMonth(0);

start.setDate(1);

start.setHours(0);

start.setMinutes(0);

start.setSeconds(0);

var middle = new Date(start.getTime());

middle.setMonth(6);

// 如果年始和年中时差相同,则认为此国家没有夏令时

if ((middle.getTimezoneOffset() - start.getTimezoneOffset()) == 0) {

return false;

}

var margin = 0;

if (isEast == 1) {

margin = middle.getTimezoneOffset();

} else {

margin = start.getTimezoneOffset();

}

if (date.getTimezoneOffset() == margin) {

return true;

}

return false;

复制代码

}

在这里额外提醒,如果本地电脑设置的语言不同的话,尽量增加new Date()返回的后面时区的语言。上面这套仅对中国用户有用。

php utc 北京时间,美国各个时区转换成北京时间 utc gmt相关推荐

  1. c语言 北京时间转换utc时间_UTC时间转换成北京时间C语言函数代码

    UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800, UTC + (+0800) = 本地(北京)时间 (1) 那么,UTC = 本地时间(北京时间))- 0 ...

  2. UTC时间转换成北京时间C语言函数代码

    UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800, UTC + (+0800) = 本地(北京)时间 (1) 那么,UTC = 本地时间(北京时间))- 0 ...

  3. PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间

    PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间 1.将UTC时间"2020-08-25 02:11:34.59741+00" 转换成北京时间( ...

  4. java输出格林威治时间_Java之格林威治时间格式转换成北京时间格式

    Java之格林威治时间格式转换成北京时间格式 /** * Copyright 2020. yaodouwang.com Studio All Right Reserved * * Create on ...

  5. 日期格式:ddMMyy-hhmmss,格林威治时间转换成北京时间

    有些项目需要第三方的接口来取数据,这样就有个问题,那就是有些字段比较特殊,采用的都是国际标准时间,方便别的语言调用,这样时间差就相差不一样了,需要进行转换. 例如:GPS的数据时间格式:ddMMyy- ...

  6. python中将HTTP头部中的GMT时间转换成datetime时间格式

    原文: https://blog.csdn.net/zoulonglong/article/details/80585716 需求背景:目前在做接口的自动化测试平台,由于接口用例执行后返回的结果中的时 ...

  7. mysql 格林时间转换_格林时间转换成正常时间

    uscdbmt@rac1:~> date +%s 1414741902 oracle中怎么把这个1414741902转换成正常时间格式 select Numtodsinterval(141474 ...

  8. js将时间戳转换成正常时间格式两种方法

    //将时间戳转换成正常时间格式2     function timestampToTime(timestamp) {         var date = new Date(timestamp * 1 ...

  9. js将时间戳转换成正常时间

    //将时间戳转换成正常时间格式function timestampToTime(timestamp) {var date = new Date(timestamp * 1000);//时间戳为10位需 ...

  10. 格林时间转换成正常时间

    uscdbmt@rac1:~> date +%s 1414741902 oracle中怎么把这个1414741902转换成正常时间格式 select Numtodsinterval(141474 ...

最新文章

  1. 远程办公,为什么一直不被公司普遍接受?
  2. 字节博士搞的AI火了,一键完美分离人声和伴奏 | 在线可玩
  3. 经典排序算法(3)——直接插入排序算法详解
  4. React中构造函数、reader和函数的调用次数和时机测试
  5. 基于linux的netfilter处理数据包的过程分析,基于Netfilter的网络数据包分析
  6. 计算机基础ABCDEF,计算机应用基础_在线作业ABCDEF.docx
  7. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解
  8. 第5章--电商项目-mysql实战--数据库主从配置
  9. HBase(2) Java 操作 HBase 教程
  10. mysql 模糊查询 s_MySql反向模糊查询
  11. 神经网络基础模型--Logistic Regression的理论和实践
  12. python 成语库_python正则表达式抓取成语网站
  13. 『华为ICT』数据通信网络基础
  14. Excel如何将数据填充完下方的空白单元格
  15. 今日头条 mysql_今日头条的核心架构解析
  16. CGAL:Win10 + VS2017 编译 CGAL 5.2
  17. 我们怎么保证软件开发的质量?
  18. 刷刷刷!-数据分析必刷文档整理
  19. [转载]坐标系统与投影变换
  20. linux还原环境,Linux环境利用恢复被rm意外删除数据文件

热门文章

  1. 自动登录163邮箱发送邮件(Python+Selenium)
  2. Maven项目中非resources文件夹中的配置文件不生效的解决办法
  3. 深度linux如何安装迅雷,deepin官方论坛-深度科技官网旗下网站
  4. Nlp预处理方法(BPE Byte pair encoding、Normalization、Lemmatisation、Stemming…)
  5. 对封装的ajax的应用-查询商铺
  6. CSS设置字体大小、字体粗细、字体风格
  7. 阿里云商标注册查询入口(支持图形检索/45分类注册风险)
  8. 004--python--华氏温度和摄氏温度的转换
  9. 怎样做终端安全防御?
  10. python实现具有删除空格、英文标点替换、英文单词大写等功能的文字排版工具