javascript时区函数介绍

设datename为创建的一个Date对象 

==================== 
datename.getTimezoneOffset() 
--取得当地时间和GMT时间(格林威治时间)的差值,返回值以分钟为单位 
==================== 

举例:根据本地时间获得GMT时间和任意时区的时间 

d=new Date(); //创建一个Date对象 
localTime = d.getTime(); 
localOffset=d.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数 
utc = localTime + localOffset; //utc即GMT时间 
offset =10; //以夏威夷时间为例,东10区 
hawaii = utc + (3600000*offset); 
nd = new Date(hawaii); 
document.writeln("Hawaii time is " + nd.toLocaleString() + <br>"); 

============================ 
Date.UTC(year, month, day, hours, minutes, seconds, ms) 

--以GMT时间构建Date对象,返回Date对象 
============================== 

直接创建Date对象则认为输入的是当地时间,而用Date.UTC创建对象则认为输入的是GMT时间 

============================ 
datename.toUTCString() 
datename.toGMTString() 
--输出GMT时间 
============================ 

该俩函数相同。后者被认为是过时的。 

相对于toLocaleString输出本地时间,该函数输出GMT时间 

============================ 
其他 
============================ 

getUTCDate() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份中的一天(1-31) 
getUTCDay() 函数 -- 返回date对象中用世界标准时间(UTC)表示的周中的一天(0-6) 
getUTCFullYear() 函数 -- 返回date对象中用世界标准时间(UTC)表示的四位年份 
getUTCHours() 函数 -- 返回date对象中用世界标准时间(UTC)表示的小时数(0-23) 
getUTCMilliseconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的毫秒数(0-999) 
getUTCMinutes() 函数 -- 返回date对象中用世界标准时间(UTC)表示的分钟数(0-59) 
getUTCMonth() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份数(0-11) 
getUTCSeconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的秒数(0-59) 


setUTCDate() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCFullYear() 函数 -- 设置date对象中用世界标准时间(UTC)表示的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCHours() 函数 --- 设置date对象中用世界标准时间(UTC)表示的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMilliseconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMinutes() 函数 -- 设置date对象中用世界标准时间(UTC)表示的分钟,秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMonth() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCSeconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 

在js中的时区我们以般讲的是关于格林威治时间和本地时间之间的时差,以分钟为单位,这和php,asp没什么区别下面我们结合date()函数来介绍一下js时区的相关问题。 

定义和用法 

getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。 
语法 
dateObject.getTimezoneOffset()返回值 
本地时间与 GMT 时间之间的时间差,以分钟为单位。 
在下面的例子中,我们将取得 GMT 时间与本地时间以分钟计的时间差: 

复制代码代码如下:

<script type="text/javascript"> 
var d = new Date() 
document.write(d.getTimezoneOffset()) 
</script> 


输出: 
-480 
设datename为创建的一个Date对象 
==================== 
datename.getTimezoneOffset() 
--取得当地时间和GMT时间(格林威治时间)的差值,返回值以分钟为单位 
==================== 

举例:根据本地时间获得GMT时间和任意时区的时间 

复制代码代码如下:

d=new Date(); //创建一个Date对象 
localTime = d.getTime(); 
localOffset=d.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数 
utc = localTime + localOffset; //utc即GMT时间 
offset =10; //以夏威夷时间为例,东10区 
hawaii = utc + (3600000*offset); 
nd = new Date(hawaii); 
document.writeln("Hawaii time is " + nd.toLocaleString() + <br>"); 
Date.UTC(year, month, day, hours, minutes, seconds, ms) 
--以GMT时间构建Date对象,返回Date对象 


============================== 
直接创建Date对象则认为输入的是当地时间,而用Date.UTC创建对象则认为输入的是GMT时间 
代码如下 复制代码 
datename.toUTCString() 
datename.toGMTString() 
--输出GMT时间 
============================ 
该俩函数相同。后者被认为是过时的。 
相对于toLocaleString输出本地时间,该函数输出GMT时间 

说明 
getTimezoneOffset() 方法返回的是本地时间与 GMT 时间或 UTC 时间之间相差的分钟数。实际上,该函数告诉我们运行 JavaScript 代码的时区,以及指定的时间是否是夏令时。 
返回之所以以分钟计,而不是以小时计,原因是某些国家所占有的时区甚至不到一个小时的间隔。 
提示和注释: 
注释:由于使用夏令时的惯例,该方法的返回值不是一个常量。 
注释:该方法总是结合一个 Date 对象来使用。 

var myDate=new Date() 
Date 对象会自动把当前日期和时间保存为其初始值。 
参数形式有以下5种: 

复制代码代码如下:

new Date("month dd,yyyy hh:mm:ss"); 
new Date("month dd,yyyy"); 
new Date(yyyy,mth,dd,hh,mm,ss); 
new Date(yyyy,mth,dd); 
new Date(ms); 


注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下: 
month:用英文表示月份名称,从January到December 
mth:用整数表示月份,从(1月)到11(12月) 
dd:表示一个月中的第几天,从1到31 
yyyy:四位数表示的年份 
hh:小时数,从0(午夜)到23(晚11点) 
mm:分钟数,从0到59的整数 
ss:秒数,从0到59的整数 
ms:毫秒数,为大于等于0的整数 
如: 

复制代码代码如下:

new Date("January 12,2006 22:19:35"); 
new Date("January 12,2006"); 
new Date(2006,0,12,22,19,35); 
new Date(2006,0,12); 
new Date(1137075575000); 


以前不知道js也有时区这个总以为只是asp,php这类才有时区的没想到都会有的,有需要的同学可以参考一下。


原文地址:https://www.cnblogs.com/danghuijian/p/4399951.html