JavaScript에서 시간 소인을 어떻게 얻습니까?
질문
UNIX의 타임 스탬프와 유사한 무언가는 현재 시간과 날짜를 나타내는 단일 숫자입니다.숫자 또는 문자열로.
답변
짧은 & snazzy :
+ new Date()
Uniby 연산자는 Date 객체의 ValueOf 메소드를 트리거하고 타임 스탬프 (변경없이)를 반환합니다.
세부:
거의 모든 현재 브라우저에서 date.now ()를 사용하여 UTC 타임 스탬프를 밀리 초 단위로 가져올 수 있습니다.이것에 대한 주목할만한 예외는 IE8 및 이전 버전 (호환성 테이블 참조)입니다.
당신은 쉽게 이것을 위해 shim을 만들 수 있습니다.
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
시간 소인을 초 단위로 가져 오려면 다음을 사용할 수 있습니다.
Math.floor(Date.now() / 1000)
또는 사용할 수 있습니다 :
Date.now() / 1000 | 0
이는 약간 더 빨리뿐만 아니라 덜 읽을 수 있습니다. (또한이 답변이나 비트 연산자에게 더 많은 설명을 참조하십시오).
Date.now () (호환성 심)를 사용하는 것이 좋습니다.짧아서 새 날짜 객체를 만들지 않으므로 약간 더 좋습니다.그러나 Shim & Maximum 호환성을 원하지 않으면 "old"메소드를 사용하여 타임 스탬프를 밀리 초 단위로 얻을 수 있습니다.
new Date().getTime()
그런 다음 이와 같이 초로 변환 할 수 있습니다.
Math.round(new Date().getTime()/1000)
그리고 위에 보여준 ViceOf 방법을 사용할 수도 있습니다.
new Date().valueOf()
밀리 초 단위의 타임 스탬프
var timestampinms = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationstart?window.performance.now () + window.performance.timing.navigationstart : date.now (); console.log (timestampinms, date.now ());
답변
나는 이것이 작기 때문에 이것을 좋아합니다.
+new Date
나는 또한 이렇게 짧고 현대적인 브라우저와 호환되기 때문에 500 명이 넘는 사람들이 더 낫다고 투표했습니다.
Date.now()
답변
JavaScript는 Epoch 이후 밀리 초 수로 작동하지만 대부분의 다른 언어는 초 함께 작동합니다.밀리 초와 함께 작동 할 수 있지만 PHP를 말하기 위해 값을 전달하자마자 PHP 기본 기능이 실패 할 것입니다.그래서 내가 항상 밀리 초가 아니라 항상 사용되는지 확인하십시오.
이렇게하면 유닉스 타임 스탬프가 제공됩니다 (초) :
var unix = Math.round(+new Date()/1000);
이것은 EPOCH (유닉스 타임 스탬프가 아님) 이후 밀리 초를 제공합니다.
var milliseconds = new Date().getTime();
답변
var time = Date.now || function() {
return +new Date;
};
time();
답변
이 답변에서 설명을 사용하여 여러 솔루션을 제공합니다.불분명하다면 질문을하시기 바랍니다
빠르고 더러운 솔루션 :
Date.now() /1000 |0
경고 : 2038 년에 부서지고 | 0 마법을 수행하면 음수를 반환 할 수 있습니다.그 대신 math.floor ()를 사용하십시오
math.floor () 솔루션 :
Math.floor(Date.now() /1000);
Derek의 일부 괴상한 대안은이 답변 아래의 의견에서 가져온 것입니다 :
new Date/1e3|0
date.now () 작업 :
IE에서 일하고 싶습니다.이 작업을 수행 할 수 있습니다 (MDN에서 폴리필) :
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
주 / 일광 절약 시간 / 일의 해를 신경 쓰지 않으면 2038 이후 에이 작업을 기억해야합니다.
Bitwise 연산은 64 비트 부동 소수점 대신 32 비트 정수의 사용을 유발합니다.
다음과 같이 올바르게 사용해야합니다.
Math.floor(Date.now() / 1000)
처음에는 코드가 실행될 때의 상대 시간을 알고 싶다면 다음과 같은 것을 사용할 수 있습니다.
const relativeTime = (() => {
const start = Date.now();
return () => Date.now() - start;
})();
jQuery를 사용하는 경우 $ .now ()는 $ .now () 내부적으로 동일한 것으로 수행됩니다. (새 날짜) .gettime ()
jQuery의 버전에 대해 만족스럽게 생각하는 경우, 나는 그것을 찾지 못했기 때문에이 대답을 upvoting 고려해보십시오.
지금은 무엇을 작게 설명합니다. 0은 다음과 같습니다.
|를 제공함으로써 인터프리터가 바이너리 또는 작동을 수행하도록 알려줍니다. 비트 조작은 date.now () / 1000에서 정수로 소수점 결과를 켜는 절대 숫자가 필요합니다.
해당 변환 중에는 소수점이 제거되어 math.floor ()를 사용하는 것과 비슷한 결과가 생깁니다.
64 비트 더블을 32 비트 정수로 변환합니다. 거대한 숫자를 다룰 때 정보 손실이 발생합니다. JavaScript가 엄격한 모드에서 64 비트 정수로 이동하지 않는 한, 자바 스크립트가 64 비트 정수로 이동하지 않는 한, 타임 스탬프는 2038 년 이후 2038 후에 중단됩니다.
DATE.NOW에 대한 자세한 내용은 다음 링크를 따르십시오. date.now () @ mdn
답변
var timestamp = Number(new Date()); // current time as number
출처:https://stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript
최근댓글