时间构造函数的使用

时间构造函数的使用

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

时间名词解析

GMT - 格林尼治标准时间、格林威治平均时间

Greenwich Mean Time 由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。 视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。 为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。 平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UTO),又叫格林尼治平时(GMT)。

UTC - 协调世界时

Universal Time Coordinated 是国际无线电咨询委员会制定和推荐的,UTC相当于本初子午线(即经度0度)上的平均太阳时。
它是经过平均太阳时(以格林威治标准时间GMT)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,
计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。
其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。
所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准.它其实是个更精确的GMT.

LT - 本地时间

LocalTime 所在时区的时间。UTC或GMT与LT如下的换算关系:LT=UTC+时区差 ;
东区是加相应的时区差,西区是减时区差。如北京是东八区,则北京时间=UTC+8.

时间的换算

1.UTC时间 与 GMT时间
我们可以认为格林威治时间就是世界协调时间(GMT=UTC),格林威治时间和UTC时间均用秒数来计算的。

2.UTC时间 与 本地时

UTC + 时区差 = 本地时间
时区差东为正,西为负。在此,把东八区时区差记为 +0800,
UTC + (+0800) = 本地(北京)时间 (1)
那么,UTC = 本地时间(北京时间))- 0800 (2)
3.UTC 与 Unix时间戳

在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。

时间对象的静态方法

  • Date.now(): 方法返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数 ,类型为Number。
  • Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]]):方法接受的参数同日期构造函数接受最多参数时一样,返回从1970-1-1 00:00:00 UTC到指定日期的的毫秒数。
    • year:1900 年后的某一年份。
    • month:0 到 11 之间的一个整数,表示月份。
    • date:1 到 31 之间的一个整数,表示某月当中的第几天。
    • hrs:0 到 23 之间的一个整数,表示小时。
    • min:0 到 59 之间的一个整数,表示分钟。
    • sec:0 到 59 之间的一个整数,表示秒。
    • ms:0 到 999 之间的一个整数,表示毫秒。
  • Date.parse(dateString): 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。 dateString的形式可如下两种:
  • ISO 8601标准 格式:
    • Year: YYYY (eg 1997)
    • Year and month: YYYY-MM (eg 1997-07)
    • Complete date:YYYY-MM-DD (eg 1997-07-16)
    • Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
    • Complete date plus hours, minutes and seconds: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
    • Complete date plus hours, minutes, seconds and a decimal fraction of asecond:YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
  • RFC2822(IETF)标准 格式:
    • “月/日/年”,如6/13/2004;
    • “英文月名 日,年”,如January 12,2004;
    • “英文星期几 英文月名 日 年 时:分:秒 时区”,如Tue May 25 2004 00:00:00 GMT-0700。

时间实例化对象的方法

  • dateObj.getTime() :返回一个时间的格林威治时间数值。
  • dateObj.setTime(timeValue):以一个表示从1970-1-1 00:00:00 UTC计时的毫秒数为来为 Date 对象设置时间。
  • dateObj.getFullYear():返回的值是绝对数。 对于1000到9999之间的日期。
  • dateObj.setFullYear(yearValue[, monthValue[, dayValue]]):根据本地时间为一个日期对象设置年份。
    • yearValue:指定年份的整数值,例如1995。
    • monthValue:一个0到11之间的整数值,表示从一月到十二月。
    • dayValue:一个1到31之间的整数值,表示月份中的第几天。如果你指定了 dayValue 参数,就必须同时指定 monthValue
  • dateObj.getYear() :返回指定的本地日期的年份。因为 getYear 不返回千禧年[full years] (“year 2000 problem”),所以这个方法不再被使用,现在替换为 getFullYear
  • dateObj.setYear(yearValue):根据本地时间为一个日期对象设置年份。
  • dateObj.getMonth():返回一个0 到 11的整数值: 0 代表一月份,1 代表二月份, 2 代表三月份,依次类推。
  • dateObj.setMonth(monthValue[, dayValue]):根据本地时间为一个设置年份的日期对象设置月份。 返回基于 1 January 1970 00:00:00 UTC 开始计算的毫秒数 。
    • monthValue:介于 0 到 11 之间的整数(表示一月到十二月)。
    • dayValue:从 1 到 31 之间的整数,表示月份中的第几天。
  • dateObj.getDate():根据本地时间,返回一个指定的日期对象为一个月中的第几天。
  • dateObj.setDate(dayValue): 根据本地时间来指定一个日期对象的天数。
  • dateObj.getDay():返回一个整数值: 0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推。
  • dateObj.getHours():返回一个0 到 23之间的整数值。
  • dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]):根据本地时间为一个日期对象设置小时数,返回从1970-01-01 00:00:00 UTC 到更新后的日期对象实例所表示时间的毫秒数。
  • dateObj.getMinutes():返回一个0 到 59的整数值。
  • dateObj.setMinutes(minutesValue[, secondsValue[, msValue]]):根据本地时间为一个日期对象设置分钟数。
  • dateObj.getSeconds():根据本地时间,返回一个指定的日期对象的秒数。
  • dateObj.setSeconds(secondsValue[, msValue]):根据本地时间设置一个日期对象的秒数。
  • dateObj.getMilliseconds():返回一个0 到 999的整数。
  • dateObj.setMilliseconds(millisecondsValue):根据本地时间设置一个日期对象的豪秒数。
  • 我们还可以使用如下的方法来根据UTC时间为基础来获取或设置时间:
    • dateObj.getUTCFullYear()
    • dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
    • dateObj.getUTCMonth()
    • dateObj.setUTCMonth(monthValue[, dayValue])
    • dateObj.getUTCDate()
    • dateObj.setUTCDate(dayValue)
    • dateObj.getUTCDay()
    • dateObj.getUTCHours()
    • dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
    • dateObj.getUTCMinutes()
    • dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
    • dateObj.getUTCSeconds()
    • dateObj.setUTCSeconds(secondsValue[, msValue])
    • dateObj.getUTCMilliseconds()
    • dateObj.setUTCMilliseconds(millisecondsValue)
  • dateObj.toString():返回一个字符串,表示该Date对象。
  • dateObj.toLocaleString() :根据当地语言规定返回代表着时间的字符串。
  • dateObj.toDateString():以美式英语和人类易读的形式返回一个日期对象日期部分的字符串。
  • dateObj.toLocaleDateString():根据当地语言规定返回一个日期对象日期部分的字符串。
  • dateObj.toTimeString():以美式英语和人类易读的形式返回一个日期对象时间部分的字符串。
  • dateObj.toLocaleTimeString():根据当地语言规定返回一个日期对象时间部分的字符串。
  • dateObj.toUTCString():把一个日期转换为一个字符串,使用UTC时区。
  • dateObj.toGMTString():把一个日期转换为一个字符串,使用UTC时区。(已废除)
  • dateObj.toISOString():返回一个 ISO 8601格式的字符串: YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值