이것은 자바 스크립트에서 작동합니다
new Date()-new Date("2013-02-20T12:01:04.753Z")
그러나 typescript에서 나는 두 개의 새로운 날짜를 쉴 수 없다
Date("2013-02-20T12:01:04.753Z")
매개 변수가 날짜 서명과 일치하지 않아 작동하지 않습니다
이것은 자바 스크립트에서 작동합니다
new Date()-new Date("2013-02-20T12:01:04.753Z")
그러나 typescript에서 나는 두 개의 새로운 날짜를 쉴 수 없다
Date("2013-02-20T12:01:04.753Z")
매개 변수가 날짜 서명과 일치하지 않아 작동하지 않습니다
답변:
이 getTime
방법 을 사용하여 1970-01-01 이후 총 밀리 초 단위로 시간을 가져 와서 빼십시오.
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
new Date(1970, 1, 1, 0, 0, 0, 0).valueOf() // returns 2674800000 new Date(1970, 1, 1, 0, 0, 0, 0).getTime() // returns 2674800000
new Date().getTime()
사용 Date.now()
하면 불필요하게 새 개체를 만들어가 없습니다.
이것이 typescript에서 수행되는 방법입니다.
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
가독성 향상 :
var eventStartTime = new Date(event.startTime);
var eventEndTime = new Date(event.endTime);
var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
eventStartTime
하고 eventEndTime
그 기간은로 입력됩니다 number
(의미는 문자 그대로 그 자체로 여기에 코드의 세 번째 줄을 경우 여기를 지속 시간이 될 것입니다 수)
Date - Date
TypeScript가 예방하도록 설계된 유형의 강제 유형에 의존 하기 때문에 작동하지 않습니다 .
+
접두사를 사용하여 해결 방법이 있습니다 .
var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z");
또는 사용하지 않으려는 경우 Date.now()
:
var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
또는 아래의 Siddharth Singh의 답변을 참조하십시오. valueOf()
+
연산자 를 넣어야하는 차이를 계산하려면
그렇게 typescript
하면 날짜가 숫자로 변환됩니다.
+new Date()- +new Date("2013-02-20T12:01:04.753Z")
거기에서 차이를 minutes
또는 로 변환하는 수식을 만들 수 있습니다 hours
.