Unix의 타임스탬프와 유사한 것으로 현재 시간과 날짜를 나타내는 단일 숫자입니다. 숫자 또는 문자열로.
질문자 :pupeno
답변자 : daveb
짧고 멋진:
+ new Date()
plus
와 같은 단항 연산자 Date
객체의 valueOf
메서드를 트리거하고 타임스탬프를 반환합니다(변경 없이).
세부:
현재 거의 모든 브라우저에서 Date.now()
를 사용하여 UTC 타임스탬프를 밀리초 단위 로 가져올 수 있습니다. 이에 대한 주목할만한 예외는 IE8 및 이전 버전입니다( 호환성 표 참조).
하지만 이를 위해 쉽게 심을 만들 수 있습니다.
if (!Date.now) { Date.now = function() { return new Date().getTime(); } }
타임 스탬프를 초 단위로 얻으려면 다음을 사용할 수 있습니다.
Math.floor(Date.now() / 1000)
또는 다음을 사용할 수 있습니다.
Date.now() / 1000 | 0
약간 더 빨라야 하지만 가독성도 떨어집니다.
(또한 이 대답을 참조 하거나 이 비트 연산자에 더 explaination과를).
Date.now()
(호환성 shim 포함)를 사용하는 것이 좋습니다. Date
객체를 생성하지 않기 때문에 약간 더 좋습니다. 그러나 shim 및 최대 호환성을 원하지 않는 경우 "이전" 방법을 사용하여 밀리초 단위로 타임스탬프를 얻을 수 있습니다.
new Date().getTime()
그런 다음 다음과 같이 초로 변환할 수 있습니다.
Math.round(new Date().getTime()/1000)
그리고 위에서 보여준 valueOf
메소드를 사용할 수도 있습니다.
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());
답변자 : xer0x
나는 이것이 작기 때문에 이것을 좋아한다.
+new Date
나는 또한 이것이 짧고 최신 브라우저와 호환되며 500명이 넘는 사람들이 더 낫다고 투표했기 때문에 이것을 좋아합니다.
Date.now()
답변자 : Daithí
JavaScript는 epoch 이후의 밀리초 수로 작동하는 반면 대부분의 다른 언어는 초 단위로 작동합니다. 밀리초 단위로 작업할 수 있지만 PHP라는 값을 전달하는 즉시 PHP 기본 기능이 실패할 수 있습니다. 따라서 항상 밀리초가 아닌 초를 사용합니다.
이렇게 하면 Unix 타임스탬프(초)가 표시됩니다.
var unix = Math.round(+new Date()/1000);
이것은 Epoch 이후 밀리초를 제공합니다(Unix 타임스탬프가 아님).
var milliseconds = new Date().getTime();
답변자 : Staale
var time = Date.now || function() { return +new Date; }; time();
답변자 : GottZ
이 답변에 설명과 함께 여러 솔루션을 제공합니다. 불분명한 것이 있으면 언제든지 질문하십시오
빠르고 더러운 솔루션:
Date.now() /1000 |0
경고 : 2038 년 중단하고 당신이 할 경우 음수를 반환 할 수 있습니다
|0
마법을. 그 시간까지Math.floor()
대신 사용하십시오.
Math.floor()
솔루션:
Math.floor(Date.now() /1000);
이 답변 아래의 의견에서 가져온 Derek 朕會功夫의 일부 괴상한 대안:
new Date/1e3|0
Date.now Date.now()
작동하도록 Polyfill:
IE에서 작동하게 하려면 다음을 수행할 수 있습니다( MDN의 Polyfill).
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()
$.now()
내부적으로 동일한 작업을 수행하므로 jQuery의 문서에 설명된 대로 (new Date).getTime()
jQuery 버전에 만족한다면 내가 직접 찾지 못했기 때문에 이 답변에 찬성하는 것을 고려하십시오.
|0
이 하는 일에 대한 간단한 설명:
제공함으로써 |
, 인터프리터에게 이진 OR 연산을 수행하도록 지시합니다.
Date.now() / 1000
의 10진수 결과를 정수로 바꾸는 절대 숫자가 필요합니다.
변환하는 동안 소수가 제거되어 Math.floor()
사용하여 출력하는 것과 유사한 결과가 나타납니다.
하지만 경고: 64비트 double을 32비트 정수로 변환합니다.
이것은 엄청난 수를 다룰 때 정보 손실을 초래할 것입니다.
타임스탬프는 Javascript가 Strict 모드에서 64비트 정수로 이동하지 않는 한 32비트 정수 오버플로로 인해 2038년 이후에 중단됩니다.
Date.now
대한 자세한 내용은 다음 링크를 참조하십시오. Date.now()
@ MDN
답변자 : aemkei
var timestamp = Number(new Date()); // current time as number
답변자 : VisioN
jQuery 는 타임스탬프를 가져오는 자체 메서드 를 제공합니다.
var timestamp = $.now();
(new Date).getTime()
표현식을 구현하는 것 외에)
참조 : http://api.jquery.com/jQuery.now/
답변자 : Joaquinglezsantos
다른 옵션 외에도 날짜 형식 ISO를 원하는 경우 직접 가져올 수 있습니다.
console.log(new Date().toISOString());
답변자 : Tom Viner
console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch
답변자 : Alireza
Date , JavaScript의 기본 객체 는 시간에 대한 모든 데이터를 얻는 방법입니다.
JavaScript에서 타임 스탬프는 클라이언트 컴퓨터 세트에 따라 다르므로 100% 정확한 타임 스탬프가 아니라는 점에 주의하십시오. 최상의 결과를 얻으려면 서버 측 에서 타임스탬프를 가져와야 합니다.
어쨌든, 내가 선호하는 방법은 바닐라를 사용하는 것입니다. 이것은 JavaScript에서 수행하는 일반적인 방법입니다.
Date.now(); //return 1495255666921
MDN에서는 아래와 같이 언급됩니다.
Date.now() 메서드는 1970년 1월 1일 00:00:00 UTC 이후 경과된 밀리초 수를 반환합니다.
now()는 Date의 정적 메서드이기 때문에 항상 Date.now()로 사용합니다.
ES5 미만 버전을 사용하는 경우 Date.now();
작동하지 않으며 다음을 사용해야 합니다.
new Date().getTime();
답변자 : live-love
더하기 위해 Javascript에서 타임 스탬프 문자열을 반환하는 함수가 있습니다. 예: 오후 15:06:38
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; }
답변자 : Kamil Kiełczewski
성능
오늘 - 2020.04.23 선택한 솔루션에 대한 테스트를 수행합니다. Chrome 81.0, Safari 13.1, Firefox 75.0의 MacOs High Sierra 10.13.6에서 테스트했습니다.
결론
- Solution
Date.now()
(E)는 Chrome 및 Safari에서 가장 빠르고 Firefox에서는 두 번째로 빠르며 빠른 브라우저 간 솔루션을 위한 최선의 선택일 것입니다. - Solution
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
답변자 : Belldandu
아직 보지 못한 1인
Math.floor(Date.now() / 1000); // current time in seconds
내가 아직 보지 못한 또 다른 하나는
var _ = require('lodash'); // from here https://lodash.com/docs#now _.now();
답변자 : Salman A
Date.getTime()
메서드를 사용할 수 있습니다.
getTime 메서드에서 반환된 값은 1970년 1월 1일 00:00:00 UTC 이후의 밀리초 수입니다.
유닉스 타임 스탬프 얻기 위해 1000 결과를 나누기 floor
필요한 경우 :
(new Date).getTime() / 1000
Date.valueOf()
Date.getTime()
과 기능적으로 동일하므로 날짜 객체에 산술 연산자를 사용하여 동일한 결과를 얻을 수 있습니다. 제 생각에는 이 접근 방식이 가독성에 영향을 미칩니다.
답변자 : Valentin Podkamennyi
Math.floor(new Date().getTime() / 1000)
는 new Date / 1E3 | 0
.
getTime()
호출을 건너뛰고 | 0
은 Math.floor()
함수를 대체합니다. 1E3
1000
대해 더 짧다는 것을 기억하는 것도 좋습니다 1E3
을 상수로 나타내기 위해 대문자 E가 소문자보다 선호됨).
결과적으로 다음을 얻습니다.
var ts = new Date / 1E3 | 0; console.log(ts);
답변자 : FullStack
moment.js
사용하는 것이 좋습니다. 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>
MomentJS를 설치하고 사용하는 다른 방법을 포함한 자세한 내용은 해당 문서를 참조하세요.
답변자 : iter
마이크로초 해상도의 타임스탬프의 경우 performance.now
.
function time() { return performance.now() + performance.timing.navigationStart; }
이것은 예를 들어 1436140826653.139
를 생성할 수 있지만 Date.now
1436140826653
만 제공합니다.
답변자 : Jitendra Pawar
만 사용할 수 있습니다.
var timestamp = new Date().getTime(); console.log(timestamp);
현재 타임 스탬프를 가져옵니다. 추가 작업을 수행할 필요가 없습니다.
답변자 : deepakssn
다음은 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()))); }
답변자 : blueberry0xff
// 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>
답변자 : cenkarioz
로깅 목적이라면 ISOString을 사용할 수 있습니다.
new Date().toISOString()
"2019-05-18T20:02:36.694Z"
답변자 : mr.boyfox
Date.now를 지원하지 않는 모든 브라우저에서 현재 날짜 시간을 가져오는 데 사용할 수 있습니다.
currentTime = Date.now() || +new Date()
답변자 : Ronnie Royston
이것은 효과가 있는 것 같습니다.
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); } };
답변자 : Anoop P S
이것은 솔루션을 가지고 있습니다 : js에서 unixtime 스탬프를 tim으로 변환합니다.
var a = new Date(UNIX_timestamp*1000); var hour = a.getUTCHours(); var min = a.getUTCMinutes(); var sec = a.getUTCSeconds();
답변자 : georgez
요전에 JQuery Cookie 의 소스 코드에서 주어진 Date 객체를 Unix 타임스탬프로 변환하는 정말 멋진 방법을 배웠습니다.
다음은 예입니다.
var date = new Date(); var timestamp = +date;
답변자 : Kevin Leary
Node.js에서 타임스탬프를 생성하는 기본적인 방법을 원하면 잘 작동합니다.
var time = process.hrtime(); var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 );
우리 팀은 이것을 사용하여 localhost 환경에서 캐시를 파괴합니다. 출력은 /dist/css/global.css?v=245521377
여기서 245521377
hrtime()
의해 생성된 타임스탬프입니다.
이것이 도움이 되기를 바랍니다. 위의 방법도 작동할 수 있지만 Node.js에서 우리의 요구에 가장 간단한 접근 방식이라는 것을 알았습니다.
답변자 : Muhammad Reda
답변자 : Rimian
Moment.js 는 Javascript 날짜를 처리하는 데 따른 많은 고통을 추상화할 수 있습니다.
참조: http://momentjs.com/docs/#/displaying/unix-timestamp/
moment().unix();
답변자 : Olemak
이 글을 쓰는 시점에서 최상위 답변은 9년이었으며 그 이후로 많은 것이 변경되었습니다. 특히 비해키 솔루션에 대한 거의 보편적인 지원이 있습니다.
Date.now()
이것이 고대(ie9 이전) 브라우저에서 깨지지 않는다는 것을 절대적으로 확신하려면 다음과 같이 체크 뒤에 넣을 수 있습니다.
const currentTimestamp = (!Date.now ? +new Date() : Date.now());
이것은 물론 초가 아니라 에포크 시간 이후의 밀리초를 반환합니다.
답변자 : Vicky Gonsalves
더 간단한 방법:
var timeStamp=event.timestamp || new Date().getTime();
출처 : Here
출처 : http:www.stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript">
'etc. > StackOverFlow' 카테고리의 다른 글
jQuery를 사용하여 확인란에 대해 "선택됨" 설정 (0) | 2021.09.28 |
---|---|
Java에서 HashMap과 Hashtable의 차이점은 무엇입니까? (0) | 2021.09.28 |
Docker는 가상 머신과 어떻게 다릅니까? (0) | 2021.09.28 |
package.json에서 물결표(~)와 캐럿(^)의 차이점은 무엇입니까? (0) | 2021.09.28 |
Git 리포지토리에 빈 디렉터리를 추가하려면 어떻게 해야 합니까? (0) | 2021.09.28 |