itsource

JavaScript에서 타임스탬프를 얻으려면 어떻게 해야 하나요?

mycopycode 2022. 9. 16. 23:10
반응형

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.jsepoch 하려면 , 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에서 우리의 요구를 충족시키는 가장 간단한 방법이라는 것을 알게 되었습니다.

lodash언더스코어 사용자의 경우_.now.

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());

이것은 물론 초가 아니라 에폭 시간 이후의 밀리초를 반환합니다.

MDN 문서(Date.now)

보다 심플한 방법:

var timeStamp=event.timestamp || new Date().getTime();

언급URL : https://stackoverflow.com/questions/221294/how-do-i-get-a-timestamp-in-javascript

반응형