getTime() 方法返回一个工夫的格林威治时间数值。本文参考MDN做的详实整理。

1、理解getTime

    getTime() 方法返回一个岁月之格林威治时间数值。

    可以采取是办法将一个日期时赋值给其它一个Date 对象。

    语法:

dateObj.getTime()

    参数:

    无。

    返回值:

    getTime
方法的返回值一个数值,表示从今1970年1月1日0时0分0秒(UTC,即协调世界时)距离该日期对象所代表时的毫秒数。

    例子:

    使用 getTime() 复制日期对象

    创建一个兼有相同时间值的日期对象。

var birthday = new Date(1994, 12, 10);
var copy = new Date();
copy.setTime(birthday.getTime());

    测试结果如下:

图片 1

   
既然表示于1970年1月1日上马计算的毫秒数,如果低于1970年呢,会是呀状态?(测试结果如下,是负数)

图片 2

 

Date对象:基于1970年1月1日(世界标准时间)起底毫秒数

本文参考MDN做的事无巨细整理,方便大家参考MDN

2、应用场景

构造函数:

  1. new Date(); 依据系统设置的手上时间来创造一个Date对象。
  2. new Date(value); value代表从1970年1月1日00:00:00 (世界标准日)
    起经的毫秒数。
  3. new Date(dateString); dateString表示日期的字符串值。该字符串应该力所能及叫
    Date.parse() 方法识别(符合 IETF-compliant RFC 2822 timestamps 或
    version of ISO8601)
  4. new Date(year, month[, day[, hour[, minutes[, seconds[,
    milliseconds]]]]]);
    year 1900
    年晚底某个同年卖,代表年份的整数值。为了避免2000年题材最好好指定4员数之年份;
    使用 1998, 而并非用 98.
    month 0 到 11 之间的一个整数,表示月份(1月)到11(12月)。
    day 1 到 31 之间的一个整数,表示某月当中的第几龙。
    hour 0 到 23 之间的一个整数,表示小时。
    minute 0 到 59 之间的一个平头,表示分钟。。
    second 0 到 59 之间的一个平头,秒数。
    millisecond 0 到 999 之间的一个整数,表示时间之毫秒部分的整数值。

万一提供了至少少只参数,其余的参数都会默认设置为1(如果没有供day参数)或者0。

JavaScript的日是由于世界标准时间(UTC)1970年1月1日初始,用毫秒计时,一天由于86,400,000毫秒组成。Date对象的限是-100,000,000天到100,000,000上(等效的毫秒值)。

JavaScript的Date对象为超平台供了联之行。时间属性可以于不同之系受表示无异的天天,而要采用了地方时间对象,则反映当地的时间。

JavaScript
的Date对象提供了累累独UTC时间之法门,也呼应提供了本土时间之方。UTC,也就是咱们所说之格林威治时间,指的凡time中之社会风气时标准。而当地时间尽管是因执行JavaScript的客户端电脑所装的时间。

因为一个函数的款型来调用JavaScript的Date对象(不使用 new
操作符)会回来一个象征时日期和时之字符串。而未是一个日期对象。另外,不像任何JavaScript
类型,Date 对象没字面量格式。

当Date作为构造函数调用并传播多个参数时,如果数值过合理界定时(如月份吗13或分钟数为70),相邻之数值会被调整。比如
new Date(2013, 13, 1)等于new Date(2014, 1,
1),它们都意味着日期2014-02-01(注意月份是从0开始之)。其他数值为是看似,new
Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1,
10),都代表时间2013-03-01T01:10:00。

当Date作为构造函数调用并传多个参数时,所定义参数代表的是本地时间。如果要世界和谐时,使用
new Date({{jsxref(“Date.UTC()”, “Date.UTC(…)”)}}) 和同一参数

2.1 测量代码执行时间

    连续调整用单薄独新变化的日子对象的 getTime
方法,根据两坏调用的回来值求得时间各异。这可用来计算某些操作的实行时间。

var end, start, i;
start = new Date();
for (i = 0; i < 100000; i++) {
  Math.sqrt(i);
}
end = new Date();

console.log("Operation took " + (end.getTime() - start.getTime()) + " msec");

    在chrome浏览器被进行测试:

图片 3

 

属性:

Date.prototype :允许吗 Date 实例对象上加属性。
Date.length:值是 7。这是拖欠构造函数可领的参数单数。

2.2 甘特图时间代表

    最近在调teamwork
gantt中,发现,是一个task任务项的起来日和收时,都是因此一个平头表示,而拖欠数值便是UTC表示法。格式如下:

     {"tasks":[
     {"id":-1,"name":"Gantt editor","code":"","level":0,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":21,"end":1399672799999,"startIsMilestone":true,"endIsMilestone":false,"collapsed":false,"assigs":[],"hasChild":true}
     ,{"id":-2,"name":"coding","code":"","level":1,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":10,"end":1398203999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"description":"","progress":0,"hasChild":true}
     ,{"id":-3,"name":"gantt part","code":"","level":2,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":2,"end":1397167199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-4,"name":"editor part","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1397167200000,"duration":4,"end":1397685599999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-5,"name":"testing","code":"","level":1,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":6,"end":1399672799999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","description":"","progress":0,"hasChild":true}
     ,{"id":-6,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"8SF:11","hasChild":false}
     ,{"id":-7,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"8SF","hasChild":false}
     ,{"id":-8,"name":"test on ie","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1400688000000,"duration":3,"end":1400947199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-9,"name":"test on chrome","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":2,"end":1399499999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"links":"","hasChild":false}
     ,{"id":-10,"name":"Gantt editor","code":"","level":0,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":21,"end":1399672799999,"startIsMilestone":true,"endIsMilestone":false,"collapsed":false,"assigs":[],"hasChild":true}
     ,{"id":-11,"name":"coding","code":"","level":1,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":10,"end":1398203999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"description":"","progress":0,"hasChild":true}
     ,{"id":-12,"name":"gantt part","code":"","level":2,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":2,"end":1397167199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-14,"name":"editor part","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1397167200000,"duration":4,"end":1397685599999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-15,"name":"testing","code":"","level":1,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":6,"end":1399672799999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","description":"","progress":0,"hasChild":true}
     ,{"id":-16,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-17,"name":"test on ie","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":3,"end":1399586399999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ,{"id":-18,"name":"test on chrome","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":2,"end":1399499999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false}
     ],"selectedRow":0,"canWrite":true,"canWriteOnParent":true}

    在甘特图中,使用getTime表示时间发出以下优势:

  • 算两个时间不一于好
  • 数量存储结构比较简单
  • 鉴于gantt涉及到打图,使用整型数据便宜处理

 

Date静态方法:

3、浏览器的兼容性

   
使用js要接受浏览器的限定,不同浏览器对js类库的支持强弱也差。而当正式类库Date的一个术,其适应的浏览器如下:

图片 4

图片 5

 

Date.now() IE9

回来自 1970-1-1 00:00:00 UTC
(时间标准日)至今所经过的毫秒数,类型也Number。
在支撑 Web Performance API
的强精细度(high-resolution)时间功能的浏览器被,window.performance.now
提供的所经的时空较 Date.now 更可靠和标准。
配合旧版浏览器:

if (!Date.now) {
  Date.now = function now() {
    return new Date().getTime();
  };
}

4、参考资料

   
Date.prototype.getTime():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

Date.parse()

浅析一个意味着日期的字符串,并返从 1970-1-1 00:00:00
所经过的毫秒数。如果参数不能够分析为一个得力的日期,则赶回NaN。
parse 方法接受一个日子字符串(例如 “Dec 25, 1995″),并赶回从1970-1-1
00:00:00
UTC到该日期字符串所表示日期的毫秒数。该办法在根据字符串值设置日期值时好有因此,例如结合使用setTime()
方法以及 Date() 构造函数。
欠办法好承受符合 RFC2822 / IETF 日期语法 (RFC2822 Section 3.3)
的字符串,如 “Mon, 25 Dec 1995 13:30:00
GMT”。该方法能够理解美国陆地时区的缩写,但是以重新通用,应该利用时区偏移,如
“Mon, 25 Dec 1995 13:30:00 +0430”
(格林威治的子午线向东方偏移4钟头30分钟)。如果无点名时区,默认使用当地时区。
GMT 与 UTC 被用作相等。 如果 RFC2822 Section 3.3
格式中莫包含时区信息经常,会以本土时区来分析日期字符串。
由于当条分缕析日期字符串时有过错会招结果不等同,因此推荐始终手动解析日期字符串,特别是不同的ECMAScript实现会晤拿诸如“2015-10-12
12:00:00”的字符串解析为NaN,UTC或者地方时间。
另外,日期时字符串也足以利用 ISO 8601 格式。例如,”2011-10-10″
(仅日期)或 “2011-10-10T14:48:00”
(日期及日)能够作为参数为传送与剖析

Date.UTC()

领与构造函数最丰富形式之参数相同之参数(从2交7),并回到从 1970-01-01
00:00:00 UTC 开始所通过的毫秒数,类型为Number。
而应有指定一个总体格式的春,如 1998
Date.UTC 方法以协调世界时 代替 本地时间。
Date.UTC 方法返回一个时空往往值,而不是一个日子对象。
苟发生一个点名的参数超出该合理限定,则 UTC
方法会通过创新任何参数直到该参数在合理界定外。例如,为月指定
15,则年度将会晤加 1,然后月以见面采用 3。

Date 实例方法:

基于地方时间的方法
赢得时间方法:

Date.prototype.getDate()
据悉当地时间回来指定日期对象的月份中之第几天(1-31)。
Date.prototype.getDay()
因地方时间赶回指定日期对象的周日中的第几上(0-6)。
Date.prototype.getFullYear()
基于地方时间回来指定日期对象的年份,该方式返回一个1000 到
9999的季各项数字年份,请以该法代替 getYear 方法。
Date.prototype.getHours()
因地方时间赶回指定日期对象的时(0-23)。
Date.prototype.getMilliseconds()
依据当地时间赶回指定日期对象的微秒(0-999)。
Date.prototype.getMinutes()
冲本地时间回到指定日期对象的分钟(0-59)。
Date.prototype.getMonth()
依据地面时间回到指定日期对象的月(0-11)。
Date.prototype.getSeconds()
冲地方时间回到指定日期对象的秒数(0-59)。
Date.prototype.getTime()
回到从1970-1-1 00:00:00
UTC(协调世界时)到拖欠日期经过的毫秒数,Number类型,对于1970-1-1 00:00:00
UTC之前的日回到负值。这个点子的功力跟 valueOf() 方法同样。
Date.prototype.getTimezoneOffset()
返回协调世界时(UTC)相对于目前时区的时刻差值,单位也分钟。
时区偏差(time-zone
offset)表示协调世界时(UTC)与本土时区之间的差值,单位为分钟。需要注意的凡设地方时区晚于协调世界时,则该差值为在,如果早于协调世界时则也负值

设置时间方法:以下措施要发一个参数超出了客观的范围,该方法会更新任何参数值,日期对象的日期值也会为相应更新

Date.prototype.setDate(value)
基于当地时间啊指定的日期对象设置月份中之第几上。
若果 value 超出了月的成立限定,setDate 将见面相应地换代 Date
对象。例如,如果为 value
指定0,那么日期就会见受安装为上个月底末梢一上,可以啊负数。
Date.prototype.setFullYear(yearValue[, monthValue[, dayValue]])
据悉地面时间吗指定日期对象设置完年份(四号数岁是四个数字)。
yearValue指定年份的平头值,例如1995。
monthValue一个0及11中的整数值,表示从今一月到十二月。
dayValue一个1交31之间的整数值,表示月份受的第几天。如果您指定了 dayValue
参数,就非得同时指定 monthValue。
如果没点名 monthValue 和dayValue 参数,将见面使 getMonth 和getDate
方法的返回值
Date.prototype.setHours(hoursValue[, minutesValue[, secondsValue[,
msValue]]])
据悉地面时间吗指定日期对象设置小时数。如果无点名
minutesValue,secondsValue 和 msValue
参数,则会用getMinutes(),getSeconds() 和getMilliseconds()
方法的归来值。
参数超出了成立界定,自动调整创新
Date.prototype.setMilliseconds()
冲地方时间也指定日期对象设置毫秒数。
Date.prototype.setMinutes()
依据当地时间吧指定日期对象设置分钟数。
Date.prototype.setMonth()
冲本地时间为指定日期对象设置月份。
Date.prototype.setSeconds()
依据地面时间呢指定日期对象设置秒数。
Date.prototype.setTime(timeValue)
透过点名由 1970-1-1 00:00:00 UTC
开始通过的毫秒数来安日期对象的时,对于早于 1970-1-1 00:00:00
UTC的辰而应用负值。例:sameBigDay.setTime(newBigDay.getTime());

因世界经常也标准的主意:

Date.prototype.getUTCDate()
因世界经常为规范,返回一个点名的日期对象是一个月份吃的第几上,返回 1 到 31
的整数值
Date.prototype.getUTCDay()
以世界经常为专业,返回一个指定的日期对象呢同礼拜中之第几龙,其中 0
代表星期天。
Date.prototype.getUTCFullYear()
坐世界经常也业内,返回一个点名的日期对象的春,该方法返回一个1000 到
9999的季各项数字年份
Date.prototype.getUTCHours()
坐世界时也业内,返回一个点名的日子对象的钟点数。
Date.prototype.getUTCMilliseconds()
以世界时为专业,返回一个指定的日子对象的毫秒数。.
Date.prototype.getUTCMinutes()
因世界经常为规范,返回一个指定的日子对象的分钟数.
Date.prototype.getUTCMonth()
因为世界时也正式,返回一个点名的日期对象的月,它是起 0 开始计数的(0
代表一如既往年的首先独月).
Date.prototype.getUTCSeconds()
为世界经常为标准,返回一个指定的日期对象的秒数.
Date.prototype.setUTCDate()
根据世界经常设置 Date 对象中月份之相同天 (1 ~ 31)。
Date.prototype.setUTCFullYear()
因世界经常设置 Date 对象被之年度(四号数字)。
Date.prototype.setUTCHours()
依据世界时设置 Date 对象中之小时 (0 ~ 23)。
Date.prototype.setUTCMilliseconds()
冲世界经常设置 Date 对象中的毫秒 (0 ~ 999)。
Date.prototype.setUTCMinutes()
依据世界时设置 Date 对象中之分钟 (0 ~ 59)。
Date.prototype.setUTCMonth()
冲世界经常设置 Date 对象中之月度 (0 ~ 11)。
Date.prototype.setUTCSeconds()
依据世界时设置 Date 对象中的秒钟 (0 ~ 59)

日子格式转换:

Date.prototype.toDateString()
盖人类易读(human-readable)的款式返回该日期对象日期有的字符串。
Date.prototype.toISOString() IE9
返一个 ISO(ISO 8601 Extended Format)格式的字符串:
YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识
Date.prototype.toJSON()
回去一个 JSON 格式字符串(使用
toISOString()),表示该日期对象的价值。默认情况下,这个艺术常用于
JSON序列化Date对象。。为了在 JSON.stringify() 方法被运用。
Date.prototype.toLocaleDateString()
返一个表示该日期对象日期有的字符串,该字符串格式和网安装的地带涉及(locality
sensitive)。其它同toLocaleTimeString()
Date.prototype.toLocaleString()
返一个象征该日期对象的字符串,该字符串与网安装的地面关系。覆盖了
Object.prototype.toLocaleString() 方法。其它同toLocaleTimeString()
Date.prototype.toLocaleTimeString([locales [, options]])
返一个意味着该日期对象时部分的字符串,该字符串格式和系统装置的地面涉(locality
sensitive)。
道返回该日期对象日期部分的字符串,该字符串格式为不同语言而异。新增的参数(IE11,而Safari无)
locales 和 options
使程序会指定使用啊种语言格式化规则,允许定制该方法的呈现(behavior)。在原本子浏览器中,
locales 和 options
参数为忽略,使用的言语环境和归的字符串格式是个别独立实现的
查浏览器兼容性小节,看下什么浏览器支持 locales 和 options
参数,还得参考例子: 检测 locales 和 options 参数支持情况。
莫点名语言环境(locale)时,返回一个运默认语言环境及格式设置(options)的格式化字符串。
locales 和 options
参数不是独具的浏览器还支持。为了检测一种植实现环境(implementation)是否支持其,可以利用无合法的言语标签,如果实现环境支持该参数,则会丢来一个
RangeError 异常,反之会忽略参数。
特性:当格式化大量日子时,最好创造一个 Intl.DateTimeFormat
对象,然后运该对象 format 属性提供的不二法门。
Date.prototype.toString()
回去一个意味该日期对象的字符串,总是回到一个美式英语日期格式的字符串。覆盖了Object.prototype.toString()
方法。
Date.prototype.toTimeString()
为人类易读格式返回日期对象时有些的字符串。
Date.prototype.toUTCString()
拿一个日期对象转换为一个因为UTC时区计时的字符串。
Date.prototype.valueOf()
回去从1970年1月1日0时0分0秒(UTC,即协调世界时)到该日期对象所代表时的毫秒数。该措施的成效及
Date.prototype.getTime() 方法同样,覆盖了 Object.prototype.valueOf()
方法。

相关文章

网站地图xml地图