JavaScript에서 타임스탬프를 얻으려면 어떻게 해야 하나요?
Unix 타임스탬프처럼 현재 날짜와 시간을 나타내는 단일 숫자를 원합니다.
타임스탬프(밀리초)
Unix epoch 이후의 밀리초수를 취득하려면 , 다음의 URL 에 문의해 주세요.
Date.now()
연산자를 합니다.+
문의처:
+ new Date()
또는 직접 전화를 걸 수도 있습니다.
new Date().valueOf()
IE8 이전 버전을 지원하려면 (호환성 표 참조)Date.now
:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
또는 직접 전화를 걸 수도 있습니다.
new Date().getTime()
타임스탬프(초)
Unix epoch 이후의 초수를 구합니다.Unix 타임스탬프:
Math.floor(Date.now() / 1000)
또는 bitwise-or to floor를 사용하는 것이 약간 빠를 뿐만 아니라 읽기 쉬우며 향후 파손될 수 있습니다(설명 1, 2 참조).
Date.now() / 1000 | 0
타임스탬프(밀리초 단위)(고해상도)
사용방법:
var isPerformanceSupported = (
window.performance &&
window.performance.now &&
window.performance.timing &&
window.performance.timing.navigationStart
);
var timeStampInMs = (
isPerformanceSupported ?
window.performance.now() +
window.performance.timing.navigationStart :
Date.now()
);
console.log(timeStampInMs, Date.now());
작아서 마음에 들어요. 왜냐하면 작기 때문이다.
+new Date
저도 이것이 마음에 듭니다. 왜냐하면 그것은 매우 짧고 최신 브라우저와 호환이 되기 때문입니다.그리고 500명 이상의 사람들이 더 낫다고 투표했습니다.
Date.now()
JavaScript는 에폭 이후의 밀리초 단위로 동작하지만 다른 대부분의 언어는 초 단위로 동작합니다.밀리초 단위로 작업할 수 있지만 PHP라고 하는 값을 전달하면 PHP 네이티브 함수는 실패할 수 있습니다.그래서 확실히 하기 위해 밀리초가 아닌 초를 항상 사용합니다.
Unix 타임스탬프(초단위)가 표시됩니다.
var unix = Math.round(+new Date()/1000);
이것에 의해, 에폭(유닉스 타임스탬프가 아니고) 이후의 밀리초가 표시됩니다.
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);
Some nerdy alternative by Derek 朕會功夫 taken from the comments below this answer:
new Date/1e3|0
을 하여 ★★★★★★★★★★★★★★★★★★★★★★Date.now()
★★★★
IE 로 동작시키려면 , 다음의 조작을 실시합니다(MDN 의 폴리필).
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
연도/요일/서머타임이 중요하지 않은 경우 2038년 이후의 날짜에 대해 다음 사항을 기억해야 합니다.
비트 연산에서는 64비트 부동 소수점 대신 32비트 정수가 사용됩니다.
다음과 같이 적절하게 사용해야 합니다.
Math.floor(Date.now() / 1000)
코드가 처음 실행된 시점부터 상대 시간을 알고 싶다면 다음과 같은 방법을 사용할 수 있습니다.
const relativeTime = (() => {
const start = Date.now();
return () => Date.now() - start;
})();
를 사용하는 jQuery를 사용할 수 .$.now()
jQuery's Docs에서 설명한 바와 같이 polyfill은 이후 사용되지 않습니다.$.now()
으로는 같은 .(new Date).getTime()
jQuery 버전이 마음에 드신다면, 제가 직접 찾지 못했기 때문에 이 답변에 투표해 보시기 바랍니다.
, 그럼 이제 무엇을 요, 네, 네, 네, 네, 네, 네, 네, 네, 네, 네.|0
하다
「 」를 지정해 .|
인터프리터에게 바이너리 OR 연산을 실행하도록 지시합니다.
에는 절대 하며, 이 번호는 합니다.Date.now() / 1000
정수로 변환합니다.
되어 사용법과 .Math.floor()
력됩니니다다
주의: 64비트의 더블을 32비트의 정수로 변환합니다.
이로 인해 막대한 수의 데이터를 처리할 때 정보가 손실됩니다.
타임스탬프는 Javascript가 엄밀한 모드에서 64비트 정수로 이동하지 않는 한 32비트 정수 오버플로로 인해 2038년 이후 중단됩니다.
것은, 「 」를 참조해 주세요.Date.now
다음 링크에 접속합니다.@ MDN
var timestamp = Number(new Date()); // current time as number
다른 옵션과 함께 날짜 형식 ISO를 원하는 경우 직접 가져올 수 있습니다.
console.log(new Date().toISOString());
jQuery는 타임스탬프를 취득하기 위한 독자적인 방법을 제공합니다.
var timestamp = $.now();
하다)(new Date).getTime()
□□□□□□□□★
참조: http://api.jquery.com/jQuery.now/
console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch
JavaScript의 네이티브 객체인 Date는 시간에 대한 모든 데이터를 가져오는 방법입니다.
JavaScript에서는 타임스탬프가 클라이언트 컴퓨터 세트에 따라 달라지기 때문에 타임스탬프가 100% 정확하지는 않습니다.최상의 결과를 얻으려면 서버 측에서 타임스탬프를 가져와야 합니다.
어쨌든, 내가 선호하는 방법은 바닐라를 사용하는 것이다.JavaScript에서는 일반적으로 다음과 같은 방법으로 실행할 수 있습니다.
Date.now(); //return 1495255666921
MDN에서는 다음과 같이 기술되어 있습니다.
Date.now() 1970년 1월 1일 00:00:00 UTC.
는 Date.now의 에 항상 Date.()로 합니다.
ES5보다 ES5가 Date.now();
동작하지 않기 때문에, 다음을 사용할 필요가 있습니다.
new Date().getTime();
성능
오늘 - 2020.04.23 선택한 솔루션에 대한 테스트를 수행합니다.Chrome 81.0, Safari 13.1, Firefox 75.0에서 MacOS High Sierra 10.13.6을 테스트했습니다.
결론들
- ★★★
Date.now()
(E)는 Chrome 및 Safari에서 가장 빠르고 Firefox에서 두 번째로 빠릅니다.이것은 고속 크로스 브라우저 솔루션에 최적인 선택입니다. - 솔루션
performance.now()
놀라운 것은 (G) Firefox의 다른 솔루션보다 100배 이상 빠르지만 Chrome에서는 가장 느리다 - 솔루션 C, D, F는 모든 브라우저에서 상당히 느리다
세부 사항
크롬 결과
사용의 머신에 대한 테스트는, 이쪽에서 실시할 수 있습니다.
테스트에 사용되는 코드가 아래 스니펫에 나와 있습니다.
function A() {
return new Date().getTime();
}
function B() {
return new Date().valueOf();
}
function C() {
return +new Date();
}
function D() {
return new Date()*1;
}
function E() {
return Date.now();
}
function F() {
return Number(new Date());
}
function G() {
// this solution returns time counted from loading the page.
// (and on Chrome it gives better precission)
return performance.now();
}
// TEST
log = (n,f) => console.log(`${n} : ${f()}`);
log('A',A);
log('B',B);
log('C',C);
log('D',D);
log('E',E);
log('F',F);
log('G',G);
This snippet only presents code used in external benchmark
덧붙여서 Javascript에서 타임스탬프 문자열을 반환하는 기능을 소개합니다.예: 15:06:38 PM
function displayTime() {
var str = "";
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
if (minutes < 10) {
minutes = "0" + minutes
}
if (seconds < 10) {
seconds = "0" + seconds
}
str += hours + ":" + minutes + ":" + seconds + " ";
if(hours > 11){
str += "PM"
} else {
str += "AM"
}
return str;
}
아직 못 본 사람
Math.floor(Date.now() / 1000); // current time in seconds
제가 아직 못 본 또 다른 건
var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();
이 메서드는 약간의 수정과 함께 사용할 수 있습니다.
getTime 메서드에서 반환되는 값은 1970년1월 1일 00:00:00 UTC 이후 밀리초 수입니다.
필요에 따라 결과를 1000으로 나누어 Unix 타임스탬프를 가져옵니다.
(new Date).getTime() / 1000
그Date.valueOf()
방법은 기능적으로 와 동등하다Date.getTime()
이를 통해 동일한 결과를 얻기 위해 날짜 객체에 산술 연산자를 사용할 수 있습니다.제 생각에 이 접근법은 가독성에 영향을 미칩니다.
코드Math.floor(new Date().getTime() / 1000)
으로 단축할 수 있다new Date / 1E3 | 0
.
직접 호출 및 사용을 생략합니다.| 0
기능을 대신할 수 있습니다.기억하는 것도 좋다.1E3
에 대한 짧은 등가입니다.1000
(대문자 E는 소문자보다 선호됩니다.1E3
( 로た )
그 결과, 다음과 같이 됩니다.
var ts = new Date / 1E3 | 0;
console.log(ts);
하시길 권해드립니다.moment.js
epoch 하려면 , UNIX epoch 를
moment().valueOf()
UNIX epoch 이후의 초수를 취득하려면 , 다음의 순서에 따릅니다.
moment().unix()
다음과 같이 시간을 변환할 수도 있습니다.
moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()
난 항상 그래.의도된 말장난은 아니다.
「」를 moment.js
★★★★★★★★★★★★★★★★★★:
<script src="moment.js"></script>
<script>
moment().valueOf();
</script>
MomentJ 설치 및 사용 방법 등 자세한 내용은 해당 문서를 참조하십시오.
마이크로초 분해능 타임스탬프의 경우 다음과 같습니다.
function time() {
return performance.now() + performance.timing.navigationStart;
}
, 「」, 「」가 됩니다.1436140826653.139
와 동시에 , 「」를 참조해 주세요.Date.now
밖에 주지1436140826653
.
다음은 타임스탬프를 mm/dd/yy hh:mi:ss 형식으로 생성하는 간단한 함수입니다.
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' +
(now.getDate()) + '/' +
now.getFullYear() + " " +
now.getHours() + ':' +
((now.getMinutes() < 10)
? ("0" + now.getMinutes())
: (now.getMinutes())) + ':' +
((now.getSeconds() < 10)
? ("0" + now.getSeconds())
: (now.getSeconds())));
}
사용할 수 있는 것은
var timestamp = new Date().getTime();
console.log(timestamp);
현재 타임스탬프를 가져옵니다.추가 작업은 필요 없습니다.
// The Current Unix Timestamp
// 1443534720 seconds since Jan 01 1970. (UTC)
// seconds
console.log(Math.floor(new Date().valueOf() / 1000)); // 1443534720
console.log(Math.floor(Date.now() / 1000)); // 1443534720
console.log(Math.floor(new Date().getTime() / 1000)); // 1443534720
// milliseconds
console.log(Math.floor(new Date().valueOf())); // 1443534720087
console.log(Math.floor(Date.now())); // 1443534720087
console.log(Math.floor(new Date().getTime())); // 1443534720087
// jQuery
// seconds
console.log(Math.floor($.now() / 1000)); // 1443534720
// milliseconds
console.log($.now()); // 1443534720087
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
로깅의 경우 ISOString을 사용할 수 있습니다.
new Date().toISOString()
'2019-05-18T20:02:36.694Z'
지원되지 않는 브라우저는 Date.now를 사용하여 현재 날짜 시간을 얻을 수 있습니다.
currentTime = Date.now() || +new Date()
이게 효과가 있는 것 같아요.
console.log(clock.now);
// returns 1444356078076
console.log(clock.format(clock.now));
//returns 10/8/2015 21:02:16
console.log(clock.format(clock.now + clock.add(10, 'minutes')));
//returns 10/8/2015 21:08:18
var clock = {
now:Date.now(),
add:function (qty, units) {
switch(units.toLowerCase()) {
case 'weeks' : val = qty * 1000 * 60 * 60 * 24 * 7; break;
case 'days' : val = qty * 1000 * 60 * 60 * 24; break;
case 'hours' : val = qty * 1000 * 60 * 60; break;
case 'minutes' : val = qty * 1000 * 60; break;
case 'seconds' : val = qty * 1000; break;
default : val = undefined; break;
}
return val;
},
format:function (timestamp){
var date = new Date(timestamp);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hours = date.getHours();
var minutes = "0" + date.getMinutes();
var seconds = "0" + date.getSeconds();
// Will display time in xx/xx/xxxx 00:00:00 format
return formattedTime = month + '/' +
day + '/' +
year + ' ' +
hours + ':' +
minutes.substr(-2) +
':' + seconds.substr(-2);
}
};
이 방법에는 해결책이 있습니다.이 방법은 유니크타임 스탬프를 tim으로 변환합니다.
var a = new Date(UNIX_timestamp*1000);
var hour = a.getUTCHours();
var min = a.getUTCMinutes();
var sec = a.getUTCSeconds();
일전에 JQuery Cookie의 소스 코드를 통해 특정 Date 객체를 Unix 타임스탬프로 변환하는 정말 멋진 방법을 배웠습니다.
다음은 예를 제시하겠습니다.
var date = new Date();
var timestamp = +date;
Node.js에서 타임스탬프를 생성하는 기본적인 방법이 필요한 경우 이 방법이 적합합니다.
var time = process.hrtime();
var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 );
저희 팀은 이를 사용하여 로컬 호스트 환경에서 캐시를 버스트하고 있습니다.은 「」입니다./dist/css/global.css?v=245521377
서 ''는245521377
는, 에 의해서 입니다.hrtime()
이것이 도움이 되기를 바라며, 위의 방법들도 작동할 수 있지만, 저는 이것이 Node.js에서 우리의 요구를 충족시키는 가장 간단한 방법이라는 것을 알게 되었습니다.
var timestamp = _.now(); // in milliseconds
Moment.js는 Javascript Dates를 처리할 때 발생하는 많은 문제를 추상화할 수 있습니다.
참조: http://momentjs.com/docs/ # / displaying / displaying / displaying - blocked /
moment().unix();
이 글을 쓴 시점에서 가장 중요한 답변은 9년 전의 것으로, 그 이후로 많은 변화가 있었습니다.게다가, 델은, 해커가 아닌 솔루션을 거의 보편적으로 서포트하고 있습니다.
Date.now()
오래된 브라우저(ie9 이전)에서 고장나지 않도록 하려면 다음과 같이 체크할 수 있습니다.
const currentTimestamp = (!Date.now ? +new Date() : Date.now());
이것은 물론 초가 아니라 에폭 시간 이후의 밀리초를 반환합니다.
보다 심플한 방법:
var timeStamp=event.timestamp || new Date().getTime();
언급URL : https://stackoverflow.com/questions/221294/how-do-i-get-a-timestamp-in-javascript
'itsource' 카테고리의 다른 글
PHP setlocale이 작동하지 않음 (0) | 2022.09.16 |
---|---|
JS의 Chrome CPU 프로파일에서 'self'와 'total'의 차이 (0) | 2022.09.16 |
Python에서 (값에서 검색하지 않고) 직접 변수로서 사전 키를 얻는 방법은 무엇입니까? (0) | 2022.09.16 |
어떤 방법 윈 11일 MinGW을 설치하기 위해 따라야 한다? (0) | 2022.09.16 |
Java 문자열 풀은 무엇이며 "s"는 새로운 문자열과 어떻게 다릅니까? (0) | 2022.09.16 |