WEB开发网
开发学院网页设计JavaScript 深入JavaScript与.NET Framework中的日期时间(2)... 阅读

深入JavaScript与.NET Framework中的日期时间(2):JavaScript中的Date类型(上)

 2010-09-14 13:31:07 来源:WEB开发网   
核心提示: 经过上面的代码之后,d1表示的是构造那一刻的时间,深入JavaScript与.NET Framework中的日期时间(2):JavaScript中的Date类型(上)(3),请注意它并不区分本地时间还是UTC时间,时间只有一个,我们就可以使用上面的第二种方法来构造一个Date对象了,如下:

经过上面的代码之后,d1表示的是构造那一刻的时间。请注意它并不区分本地时间还是UTC时间,时间只有一个,UTC时间也好本地时间也罢,这只是同一个时间的不同表现形式而已。d2对象在构造时只接受了一个参数,因此这个参数将会被作为相对于UTC时间1970年1月1日0时整的偏移毫秒数,也就是time value。如果使用了多个参数来构造Date对象,则参数会被依次认作为年、月、日,直到最后个参数表示毫秒。除了年和月之外,所有的参数都是可选的,不提供的参数使用0作为其默认值。关于这个构造方式有两点是需要注意的:

“月份”从0开始计算:在JavaScript中,Date类型对象的Month值是从0开始计算的,也就是说使用0到11来表示1月到12月。因此上例的代码中构造的时6月4日而不是5月4日。这一点常常被人忽视,甚至会被认作是JavaScript的bug,其实这一点在Spec上写的清清楚楚。

参数表示的是本地时间信息:上例的代码所构造出的时间对象表示2007年6月6日0时整,请注意这是站在“本地时间”的角度来考虑的。例如,我在时区设置为UTC +8的系统上调用new Date(2007, 5, 6)构造出的其实是UTC时间2007年6月5日16点整。

我们通过new关键字并指定年、月、日等信息构造出的Date对象是基于本地时间的,那么我们该如何构造出一个有特定年、月、日等UTC时间信息的对象呢?我们只能间接地这么做,因为JavaScript只提供了一个Date.UTC方法,它的方法签名如下:

Date.UTC (year, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] )

这个方法的作用是根据指定的年、月、日等UTC时间信息,返回一个time value值,通过这个值,我们就可以使用上面的第二种方法来构造一个Date对象了,如下:

var d = new Date(Date.UTC(2007, 5, 6)); // 构造一个表示UTC时间2007年6月6日0时整的对象

一般来说,我们最常用的构造Date对象的方法就是上述这些。

上一页  1 2 3 

Tags:深入 JavaScript NET

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接