Flash ActionScript 时间对象详解

● 时间对象(Date) ●

new Date()
定义一个时间对象,其时间为当前系统时间(当地时间)。

new Date(year, month, [date, hour, minute, second, millisecond])
定义一个时间对象,其时间根据给定的参数(当地时间)确定。各参数取值
为:year(0~99表示1900~1999,此外表示公制年份),month(0~11),
date(1~31),hour(0~23),minute(0~59),second(0~59),millisecond
(0~999)。

new Date(dateUTC_num)
定义一个时间对象,其时间根据dateUTC_num,即距离1970.1.1 0:00:00(GMT)
的时差(毫秒单位)决定。如:t = new Date(Date.UTC(2001, 10, 1, 18, 0))
则t就表示2001.11.1 18:00(GMT),以北京当地时间即为2001.11.2 2:00
(GMT+8:00)。

= myDate.toString()
将myDate以字符串形式返回,如:"Sun May 27 03:47:00 GMT+0900 2001",
表示myDate所指的当地时间为2001.5.27 3:47:00(周日),其时区为GMT+9:00
即格林威治世界标准时加9小时。

= myDate.getFullYear()
返回myDate所指时间的公制年份(当地时间)。

= myDate.getYear()
返回myDate所指时间的公制年份(当地时间)-1900,如2001年就为101。

= myDate.setFullYear(year, [month, date])
设置myDate的年月日(当地时间),year必须为公制年份值,month和date的取值参见构造函数。返回myDate的UTC时间值。

= myDate.setYear(year)
设置myDate的时间(当地时间),year的取值参见构造函数。返回myDate的UTC时间值。

= myDate.getMonth()
返回myDate所指时间的月份值(当地时间)。0表示一月,11表示十二月。

= myDate.setMonth(month, [date])
设置myDate的月日(当地时间),month和date的取值参见构造函数。返回myDate的UTC时间值。

= myDate.getDate()
返回myDate所指时间的日期值(当地时间)。

= myDate.setDate(date)
设置myDate的日期(当地时间),返回myDate的UTC时间值。

= myDate.getDay()
返回myDate所指时间的星期(当地时间),0表示周日,1~6表示周一到周六。

= myDate.getHours()
返回myDate所指时间的小时数(当地时间)。

= myDate.setHours(hour)
设置myDate的小时数(当地时间),返回myDate的UTC时间值。

= myDate.getMinutes()
返回myDate所指时间的分钟数(当地时间)。

= myDate.setMinutes(minute)
设置myDate的分钟数(当地时间),返回myDate的UTC时间值。

= myDate.getSeconds()
返回myDate所指时间的秒数(当地时间)。

= myDate.setSeconds(second)
设置myDate的秒数(当地时间),返回myDate的UTC时间值。

= myDate.getMilliseconds()
返回myDate所指时间的毫秒数(当地时间)。

= myDate.setMilliseconds(milliseconds)
设置myDate的毫秒数(当地时间),返回myDate的UTC时间值。
= myDate.getUTCFullYear()
= myDate.getUTCYear()
= myDate.setUTCFullYear(year, [month, date])
= myDate.setUTCYear(year)
= myDate.getUTCMonth()
= myDate.setUTCMonth(month, [date])
= myDate.getUTCDate()
= myDate.setUTCDate(date)
= myDate.getUTCDay()
= myDate.getUTCHours()
= myDate.setUTCHours(hour)
= myDate.getUTCMinutes()
= myDate.setUTCMinutes(minute)
= myDate.getUTCSeconds()
= myDate.setUTCSeconds(second)
= myDate.getUTCMilliseconds()
= myDate.setUTCMilliseconds(milliseconds)
功能与未加UTC的相应函数相同,只不过不是针对当地时间,而是针对格林
威治世界标准时间。

= myDate.getTime()
返回myDate的UTC时间值。

= myDate.getTimezoneOffset()
返回当地时间与格林威治世界标准时之间的时间差(分钟单位)。比如系统
时区设为GMT+8:00则返回-480,即比GMT提前8小时。

  说明:这里多次提到的UTC时间值指的就是当前系统时间的格林威治标准世界时与
1970.1.1 0:00:00的时差(毫秒单位)。操作系统内部对时间的表示包括两项数值,即UTC
时间值与所设定的时区(按当地时间与格林威治世界标准时之差所定)。Date对象在获取
当前时间时只获取其中的UTC时间值。然后在调用针对当地时间相关的函数时测试系统时区
参数,进行时区转化后再处理。而在调用针对格林威治世界标准时间的函数(即函数名内
加上UTC的)时,不经时区转化直接处理。

  在某些系统中可能会出现用getHours()等针对当地时间的函数获取的小时数与系统当
前时间差1的情况,那是由于虽然Date对象获取的系统UTC时间值没错,但在调用函数时获
取的系统时区值由于Flash5内部处理时的理解分歧,造成了时区转化的错误(不知道是不
是bug)。解决的办法是在获取当前时间后对UTC时间值减3600000。如:

d = new Date((new Date).getTime() - 3600000)

这时通过d获取当地时间就准了,当然代价是获取世界标准时就差了1小时
上一篇: Flash ActionScript 流程控制语法详解
下一篇: Flash ActionScript 运算符详解
文章来自: 网络
引用通告: 查看所有引用 | 我要引用此文章
Tags: Flash ActionScript
相关日志:
评论: 0 | 引用: 0 | 查看次数: 8449