Date.now()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
Date.now() ã¯éçã¡ã½ããã§ã UTC (åå®ä¸çæ) ã§ 1970 å¹´ 1 æ 1 æ¥ã®å¤åã¨å®ç¾©ããã¦ããå
æããã®çµéæéããããªç§åä½ã§è¿ãã¾ãã
試ãã¦ã¿ã¾ããã
// ãã®ä¾ã¯å®è¡ã« 2 ç§æããã¾ã
const start = Date.now();
console.log("starting timer...");
// äºæ³ãããçµæ: "starting timer..."
setTimeout(() => {
const ms = Date.now() - start;
console.log(`seconds elapsed = ${Math.floor(ms / 1000)}`);
// äºæ³ãããçµæ: "seconds elapsed = 2"
}, 2000);
æ§æ
Date.now()
弿°
ãªãã
è¿å¤
ç¾å¨æå»ã®ã¿ã¤ã ã¹ã¿ã³ããããªç§åä½ã§è¡¨ãæ°å¤ã§ãã
解説
>æéã®ç²¾åº¦ã®ä½ä¸
ã¿ã¤ãã³ã°æ»æããã£ã³ã¬ã¼ããªã³ãã£ã³ã°ã«å¯¾ããä¿è·æ©è½ãæä¾ããããã«ã someFile.lastModified ã®ç²¾åº¦ããã©ã¦ã¶ã¼ã®è¨å®ã«å¿ãã¦ä¸¸ãããããã¨ãããã¾ãã
Firefox ã§ã¯ãprivacy.reduceTimerPrecision è¨å®ã¯æ¢å®ã§æå¹ã«ãªã£ã¦ãããæ¢å®ã§ 2 ããªç§ã«ãªãã¾ãããã®å ´åã精度㯠100ms ã¾ã㯠privacy.resistFingerprinting.reduceTimerPrecision.microseconds ã®å¤ã®ã©ã¡ãã大ããæ¹ã«ãªãã¾ãã
ä¾ãã°ãæå»ã®ç²¾åº¦ãä¸ããå ´åã Date.now() ã®çµæã¯å¸¸ã« 2 ã®åæ°ã«ãªããprivacy.resistFingerprinting ãæå¹ã«ããå ´å㯠100 ã®åæ°ï¼ã¾ã㯠privacy.resistFingerprinting.reduceTimerPrecision.microsecondsï¼ã«ãªãã¾ãã
// Firefox 60 ã§ã®æéã®å¶åº¦ã®ä½ä¸ (2ms)
Date.now();
// åãããå¤:
// 1519211809934
// 1519211810362
// 1519211811670
// â¦
// `privacy.resistFingerprinting` ãæå¹ãªå ´åã®æéã®å¶åº¦ã®ä½ä¸
Date.now();
// åãããå¤:
// 1519129853500
// 1519129858900
// 1519129864400
// â¦
ä¾
>çµéæéã®æ¸¬å®
Date.now() ã使ç¨ãã¦ç¾å¨ã®æå»ãããªç§åä½ã§åå¾ããååã®æå»ãå·®ãå¼ãã¨ã2 ã¤ã®å¼ã³åºãéã®çµéæéãæ±ãããã¨ãã§ãã¾ãã
const start = Date.now();
doSomeLongRunningProcess();
console.log(`çµéæé: ${Date.now() - start} ms`);
ããè¤éãªã·ããªãªã§ã¯ãããã©ã¼ãã³ã¹ API ã使ç¨ãããã¨ããå§ããã¾ãã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-date.now> |