A-A+

javascript时区和date()函数详解

2016年01月13日 前端设计 暂无评论 阅读 5 views 次

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

定义和用法

getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。

语法:

dateObject.getTimezoneOffset()返回值

本地时间与 GMT 时间之间的时间差,以分钟为单位,在下面的例子中,我们将取得 GMT 时间与本地时间以分钟计的时间差,代码如下:

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

输出:-480

设datename为创建的一个Date对象

datename.getTimezoneOffset()

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

举例:根据本地时间获得GMT时间和任意时区的时间,代码如下:

  1. d=new Date(); //创建一个Date对象  
  2. localTime = d.getTime();  
  3. localOffset=d.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数  
  4. utc = localTime + localOffset; //utc即GMT时间  
  5. offset =10; //以夏威夷时间为例,东10区  
  6. hawaii = utc + (3600000*offset);   
  7. nd = new Date(hawaii);   
  8. document.writeln("Hawaii time is " + nd.toLocaleString() + <br>");  
  9. Date.UTC(year, month, day, hours, minutes, seconds, ms)  
  10. --以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种,代码如下:

  1. new Date("month dd,yyyy hh:mm:ss");  
  2. new Date("month dd,yyyy");  
  3. new Date(yyyy,mth,dd,hh,mm,ss);  
  4. new Date(yyyy,mth,dd);  
  5. 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的整数

代码如下:

  1. new Date("January 12,2006 22:19:35");  
  2. new Date("January 12,2006");  
  3. new Date(2006,0,12,22,19,35);  
  4. new Date(2006,0,12);  
  5. new Date(1137075575000);  

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

标签:

给我留言