我们在进行网站开发的时候有可能会涉及到国外的用户或者用户身在国外,这时就会存在时差问题,比如说我们在中国的时间是08:00,但是此时韩国的时间是09:00,如果在网页上需要进行相关显示的话就会出现问题,那作为一个前端该怎么解决这个问题呢?

前端通过请求获取的时间一般都是时间戳格式,这个时间戳一般就是UTC时间(*UTC:最接近标准时间的一个时间标准),而我们在网页上需要显示的是GMT时间,下面就是根据本地时间获得GMT时间和任意时区的时间函数:

1.将本地时间转化成任意时区的时间(如:通过本地时间获取韩国的时间):

首先我们需要知道韩国的时区,这个可以网上查,韩国时区为东9区.

  var d=new Date();
var localTime = d.getTime();
var localOffset=d.getTimezoneOffset()*60000; //getTimezoneOffset()返回是以分钟为单位,需要转化成ms
var utc = localTime + localOffset;
offset =9; //以韩国时间为例,东9区
korean= utc + (3600000*offset);
nd = new Date(korean);
console.log("Korean time is " + nd.toLocaleString());

2.UTC时间转化为本地时区时间(UTC时间格式一般为 "2017-11-16T05:23:20.000Z");

convertUTCTimeToLocalTime: function (UTCDateString) {
if(!UTCDateString){
return '-';
}
function formatFunc(str) { //格式化显示
return str > 9 ? str : '0' + str
}
var date2 = new Date(UTCDateString); //这步是关键
var year = date2.getFullYear();
var mon = formatFunc(date2.getMonth() + 1);
var day = formatFunc(date2.getDate());
var hour = date2.getHours();
var noon = hour >= 12 ? 'PM' : 'AM';
hour = hour>=12?hour-12:hour;
hour = formatFunc(hour);
var min = formatFunc(date2.getMinutes());
var dateStr = year+'-'+mon+'-'+day+' '+noon +' '+hour+':'+min;
return dateStr;
},
console.log(convertUTCTimeToLocalTime("2017-11-16T05:23:20.000Z"));    
//2017-11-16 PM 01:23
 

参考地址:http://bjtime.cn/info/view.asp?id=223

js将UTC时间转化为当地时区时间(UTC转GMT)的更多相关文章

  1. js将UTC时间转化为当地时区时间

    js将UTC时间转化为当地时区时间(UTC转GMT)   我们在进行网站开发的时候有可能会涉及到国外的用户或者用户身在国外,这时就会存在时差问题,比如说我们在中国的时间是08:00,但是此时韩国的时间 ...

  2. PHP 获取中国时间,即上海时区时间

    /** * 获取中国时间,即上海时区时间 * @param <type> $format * @return <type> */ function getChinaTime($ ...

  3. 根据本地/服务器时间获取指定时区时间 new Date指定时区时间

    1.代码 function getTimeByTimeZone(timeZone){ var d=new Date(); localTime = d.getTime(), localOffset=d. ...

  4. 时区之痒 - 从手机GPS模块获取的时间,真的是北京时间么?

    去年互联网地图行业开始引入众包模式,国内比较大的地图商,比如四维图新.高德地图.百度地图纷纷开始推出UGC应用,众包给用户采集门址.公交站等信息,并按照工作量给与采集者一定的回报.我曾经玩过某德推出的 ...

  5. 用JS将指定时间转化成用户当地时区的时间

    公司的项目是面向海外用户的,但是最初的设计没考虑到时差问题,存入数据库的时间都是东八区的时间,导致现在补救有点坑爹...... 有一个需求是,产品详细页需要注明此款产品的开售时间,当海外的用户来访问这 ...

  6. 关于时区的时间的详解,比如UTC\GMT等

    UTC 和 GMT 及 北京时间的关系 UTC和GMT,这两者几乎是同一概念.它们都是指的格林尼治标准时间,只不过UTC的称呼更为正式一点.两者的区别在于前者是一个天文 上的概念,而 后者是基于一个原 ...

  7. UTC 时间转化为北京时间

    // UTC 时间转化为北京时间 function utc2beijing(utcTime) { var T_pos = utcTime.indexOf('T'); var Z_pos = utcTi ...

  8. JS一个根据时区输出时区时间的函数

    做项目遇到的坑爹问题,需要根据时区获取时区中轴线的时间.为此搜了好久网上都没什么JS的代码描述到这一方面,最后自己翻了下高中地理才写了个函数出来. 此图可以看出来,全球分为了0时区,东西1-11区,第 ...

  9. js Date.UTC() 与 php strtotime()生成的时间截不一样

    Difference in UTC date between PHP and Javascript 工作中,因使用highcharts显示数据,需要将PHP 将日期转换为UTC 时区的时间截,然后通过 ...

随机推荐

  1. UVa 1636 决斗

    https://vjudge.net/problem/UVA-1636 题意: 首先在手枪里随机装了一些子弹,然后抠了一枪,发现没有子弹.你希望下一枪也没有子弹,是应该直接再抠一枪还是随机转一下再抠. ...

  2. ThinkPHP 表单自动验证运用

    使用TP 3.2框架 public function add_post(){ //验证规则 $rule=array( array('name','require','请输入姓名',1),//必须验证n ...

  3. BZOJ 3123 【SDOI2013】 森林

    题目链接:森林 这道题想法很显然.既然只有加边而没有删边,那么每次启发式合并就可以了.查询路径\(k\)小似乎需要主席树,那么把主席树和倍增表一起暴力重构就好了. 然后发现这样的空间复杂度是\(O(n ...

  4. 51nod 1225 余数的和 数学

    1225 余数之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 F(n) = (n % 1) + (n % 2) + (n % 3) + ... ...

  5. Apache-commons-io包的使用及常用方法

    首先,我们要下载FileUtils相关的Apache-commons-io jar包以及api文档.FileUtils类库的下载页面在: http://commons.apache.org/prope ...

  6. JSP 日期处理

    JSP 日期处理 使用JSP最重要的优势之一,就是可以使用所有Java API.本章将会详细地讲述Java中的Date类,它在java.util包下,封装了当前日期和时间. Date类有两个构造函数. ...

  7. LeetCode 40

    // 既然不能重复利用,就在递归中选择下一个数,不能重复的话,就用setclass Solution { public: vector<vector<int>> combina ...

  8. C++设计模式之享元模式

    概述 想想我们编辑文档用的wps,文档里文字很多都是重复的,我们不可能为每一个出现的汉字都创建独立的空间,这样代价太大,最好的办法就是共享其中相同的部分,使得需要创建的对象降到最小,这个就是享元模式的 ...

  9. IE8下的typeof(console.log)为"object"的BUG

    今天发现IE8在开启过控制台后,console.log虽然可用,也是确实是一个函数,但是对其执行typeof操作返回的确是"object" 原生IE8:

  10. 关于poi操作excel我使用的一些修饰操作

    被这情况恶心了.我的excel默认为常规,然后写入数字就成类似number类型,获取值得到的是double类型,2变成2.0.号码变成科学计数法. 做功能找了一段时间,保存下来防止忘记下次浪费时间. ...