javascript时区和date()函数详解
在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这类才有时区的没想到都会有的,有需要的同学可以参考一下。