2013-10-01 2 views
1

자바에서와 같이 날짜 객체를 긴 형식 (밀리 초 형식 일 수 있음)으로 변환하려고했습니다.
그래서 내 욕구를 충족하기 위해, 약간의 시행 착오 후에, 나는 나를 위해 작동 방식 아래에서 발견 :날짜를 긴 형식으로 변환하는 방법, 작동 원리?

var date = new Date(); 
var longFormat = date*1; // dont know what it does internally 
console.log(longFormat); // output was 1380625095292 

가 확인하려면, 나는 그것이 new Date(longFormat);를 사용하여 역 그리고 그것은 나에게 올바른 출력을 주었다. 간단히 말해서 나는 나의 필요를 어떻게 충족시킬 수 있었는가? 그러나 나는 내부적으로 곱셈이하는 것을 여전히 공백으로 남겨두고 있는가? 나는 현재 날짜에 2를 곱하려고 시도 할 때, 나에게 2057 년의 어떤 날짜를 주었다 !! 아는 사람, 정확히 무슨 일이 일어 났습니까? 그 당신이 다음 stringify을 할 수있는 결과

+3

설명서를 읽으십시오 ... 이것은 1/1/1970 년 이후의 밀리 초 수입니다 ('date.getTime()'과 동일합니다) – devnull69

+0

@ devnull69 제 질문을 명확히 할 수있는 몇 가지 리소스 링크를 공유해주십시오. – agpt

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime이 좋은 시작일 수 있습니다. – devnull69

답변

2

01.01.1970 다음에 긴 형식은 the number of ticks이므로 약 43 년 동안 표시됩니다.

* 연산자가 숫자로 변환되도록하려면 Date 객체에 getTime()과 같은 캐스팅이 있어야합니다.

두 배의 밀리 초 - 당신은 43 년 더, 따라서 2057 년이됩니다.

-2

당신은 Date constructorparsing functionality을 시도 할 수 :

>

new Date("04/06/13").toString() 
"Sun Apr 06 1913 00:00:00 GMT+0200" 

// 또는 뭔가 그러나 구문 분석 구현에 의존하고있다하지 않습니다 기이 한 DD/MM/YY 형식을 올바르게 해석하는 많은 엔진이되어야합니다. MM/DD/YYYY를 사용했다면 아마도 모든 곳에서 인정 될 것입니다.

대신, 당신은 그것을 구문 분석하는 방법을 확인, 그래서 스스로를해야하고 생성자에 단일 부품을 공급하려면 : 틱

당신이 번식 할 때 점점 무엇
var parts = "04/06/13".split("/"), 
    date = new Date(+parts[2]+2000, parts[1]-1, +parts[0]); 
console.log(date.toString()); // Tue Jun 04 2013 00:00:00 GMT+0200 
2

입니다

방문 : 또한 How to convert JavaScript date object into ticks

, 당신 * 2 그것을, 당신은 진드기의 이중 가치를 얻을, 그래서 날짜가 미래

의 경우

getTime

var date = new Date() var ticks = date.getTime() 
는 1970 년 1 월 1 일이 밀리 그래서 * 1이, 당신이 가지고 수있는 값 이후의 밀리 초 수를 반환합니다. 당신이 * 2 일 때, 그 milliseconds는 두 배가되고, 당신은 2057의 날짜를 얻습니다 !!

0

날짜는 내부적으로 타임 스탬프로 저장되며 긴 개체 (more info on timestamps)입니다. 그래서 새로운 날짜 (긴)로 날짜를 만들 수 있습니다. 당신은 정수와 날짜를 곱하려고하면 다음과 같은 절차가 진행됩니다

var date = new Date(); 
    var longFormat = date*1; 
    // date*1 => date.getTime() * 1 

    console.log(longFormat); // output is 1380..... 

자바 스크립트는이 경우에있는 요인 1에 거는 수있는 형식으로 날짜로부터 가장 쉬운 변환을 발견하려고 내부 긴 형식

0

날짜 개체 방법을 사용하십시오.

워드 프로세서 읽기 : JavaScript Date object

var miliseconds=yourDateObject.getMiliseconds(); 

당신은 틱 얻고 싶은 경우에 :

var ticks = ((yourDateObject.getTime() * 10000) + 621355968000000000); 

또는

var ticks = someDate.getTime(); 
0
자바 스크립트 날짜 개체가 UTC time value을 기반으로 밀리 초입니다

을 1970 년 1 월 1 일부터. 자바가 같은 신기원을 사용하지만 시간 값은 초입니다.

시간 값을 얻으려면 getTime 메서드를 사용하거나 수학 연산을 날짜 개체에 적용 할 수 있습니다. 당신이 경우에

var d2 = new Date(+d); 

:

var d = new Date(); 
alert(d.getTime()); // shows time value 
alert(+d);   // shows time value 

은 날짜 생성자는 또한 당신이 할 수있는 날짜 객체를 복사, 날짜 객체를 생성 할 수있는 인자로 시간 값을 받아

var d3 = new Date(2 * d); 

당신은 사실상 (매우 대략적으로) 날짜를 만듭니다 :

1970 + (2013 - 1970) * 2 = 2056