(window.webpackJsonp=window.webpackJsonp||[]).push([[1793],{2201:function(t,e,a){"use strict";a.r(e);var s=a(31),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"timestamps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timestamps"}},[t._v("#")]),t._v(" Timestamps")]),t._v(" "),a("h2",{attrs:{id:"high-resolution-timestamps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#high-resolution-timestamps"}},[t._v("#")]),t._v(" High-resolution timestamps")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/Performance/now",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("performance.now()")]),a("OutboundLink")],1),t._v(" returns a precise timestamp: The number of milliseconds, including microseconds, since the current web page started to load.")]),t._v(" "),a("p",[t._v("More generally, it returns the time elapsed since the "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming/navigationStart",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("performanceTiming.navigationStart")]),a("OutboundLink")],1),t._v(" event.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("t "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" performance"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),a("p",[t._v("For example, in a web browser's main context, "),a("code",[t._v("performance.now()")]),t._v(" returns "),a("code",[t._v("6288.319")]),t._v(" if the web page began to load 6288 milliseconds and 319 microseconds ago.")]),t._v(" "),a("h2",{attrs:{id:"low-resolution-timestamps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#low-resolution-timestamps"}},[t._v("#")]),t._v(" Low-resolution timestamps")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("Date.now()")]),a("OutboundLink")],1),t._v(" returns the number of whole milliseconds that have elapsed since 1 January 1970 00:00:00 UTC.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("t "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Date"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),a("p",[t._v("For example, "),a("code",[t._v("Date.now()")]),t._v(" returns "),a("code",[t._v("1461069314")]),t._v(" if it was called on 19 April 2016 at 12:35:14 GMT.")]),t._v(" "),a("h2",{attrs:{id:"get-timestamp-in-seconds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-timestamp-in-seconds"}},[t._v("#")]),t._v(" Get Timestamp in Seconds")]),t._v(" "),a("p",[t._v("To get the timestamp in seconds")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("floor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getTime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),a("h2",{attrs:{id:"support-for-legacy-browsers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#support-for-legacy-browsers"}},[t._v("#")]),t._v(" Support for legacy browsers")]),t._v(" "),a("p",[t._v("In older browsers where "),a("code",[t._v("Date.now()")]),t._v(" is unavailable, use "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("(new Date()).getTime()")]),a("OutboundLink")],1),t._v(" instead:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("t "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getTime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),a("p",[t._v("Or, to provide a "),a("code",[t._v("Date.now()")]),t._v(" function for use in older browsers, "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now#Polyfill",target:"_blank",rel:"noopener noreferrer"}},[t._v("use this polyfill"),a("OutboundLink")],1),t._v(":")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("Date"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("now"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Date"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("now")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getTime")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),a("h4",{attrs:{id:"syntax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#syntax"}},[t._v("#")]),t._v(" Syntax")]),t._v(" "),a("ul",[a("li",[t._v("millisecondsAndMicrosecondsSincePageLoad = performance.now();")]),t._v(" "),a("li",[t._v("millisecondsSinceYear1970 = Date.now();")]),t._v(" "),a("li",[t._v("millisecondsSinceYear1970 = (new Date()).getTime();")])]),t._v(" "),a("h4",{attrs:{id:"remarks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remarks"}},[t._v("#")]),t._v(" Remarks")]),t._v(" "),a("p",[a("code",[t._v("performance.now()")]),t._v(" is "),a("a",{attrs:{href:"http://caniuse.com/#feat=high-resolution-time",target:"_blank",rel:"noopener noreferrer"}},[t._v("available in modern web browsers"),a("OutboundLink")],1),t._v(" and provides reliable timestamps with sub-millisecond resolution.")]),t._v(" "),a("p",[t._v("Since "),a("code",[t._v("Date.now()")]),t._v(" and "),a("code",[t._v("(new Date()).getTime()")]),t._v(" are based on the system time, they "),a("a",{attrs:{href:"http://gent.ilcore.com/2012/06/better-timer-for-javascript.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("often get skewed by a few milliseconds when the system time is automatically synchronized"),a("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]);