[javascript] 두 날짜 사이의 시간 차이를 초 단위로 가져옵니다.

두 날짜 사이의 차이를 초 단위로 얻으려고합니다. 논리는 다음과 같습니다.

  • 초기 날짜를 설정하십시오.
  • 초기 날짜에 몇 초를 더한 최종 날짜를 설정하십시오 (예를 들어 15라고 가정하십시오)
  • 그 둘 사이의 차이를 얻습니다 (초 단위)

내가 날짜와 함께 그것을하는 이유는 최종 날짜 / 시간이 다른 변수에 달려 있기 때문에 결코 같지 않으며 (사용자가 얼마나 빨리 수행하는지에 달려 있음) 다른 일에 대한 초기 날짜도 저장합니다.

나는 이런 식으로 노력하고있다 :

var _initial = new Date(),
    _initial = _initial.setDate(_initial.getDate()),
    _final = new Date(_initial);
    _final = _final.setDate(_final.getDate() + 15 / 1000 * 60);

var dif = Math.round((_final - _initial) / (1000 * 60));

문제는 결코 올바른 차이를 얻지 못한다는 것입니다. 나는 24 * 60초로 나를 떠날 수있는 나누기를 시도 했지만 결코 제대로 얻지 못했습니다. 내 논리에 어떤 문제가 있습니까? 꽤 늦었을 때 바보 같은 실수를 저지르고 있지만 작동하지 못하게 귀찮게합니다. 🙂



답변

코드

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;

또는 (endDate - startDate) / 1000typescript를 사용하지 않는 한 주석에서 지적한 것처럼 더 간단 합니다.


설명

객체 의 getTime()메소드 를 호출 Date한 다음 간단히 빼고 1000으로 나눕니다 (원래 밀리 초이므로). 또한 getDate()메소드를 호출 할 때 실제로 메소드 호출에서 얻은 에포크 시간과 달리 1에서 31 사이의 정수 (0을 기준으로하지 않음)로 가져옵니다 getTime(). 1970 년 1 월 1 일 00:00 이후 밀리 초 수를 나타냅니다.


란트

날짜 관련 작업이 무엇인지에 따라 개발자가 훨씬 쉽게 사용할 수 있도록 date.js 또는 moment.js 와 같은 라이브러리를 통합하는 데 투자하고 싶을 수도 있지만 이는 개인적인 취향의 문제 일뿐입니다.

예를 들어 moment.js에서 우리 moment1.diff(moment2, "seconds")는 아름다운 것을 할 것 입니다.


이 답변에 유용한 문서


답변

new Date().getTime()타임 스탬프를 얻는 데 사용할 수 있습니다 . 그럼 당신은 끝 사이의 차이를 계산하고 시작하고 마침내 타임 스탬프 변환 할 수 있습니다 ms로를 s.

const start = new Date().getTime();
const end = new Date().getTime();

const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);


답변

<script type="text/javascript">
var _initial = '2015-05-21T10:17:28.593Z';
var fromTime = new Date(_initial);
var toTime = new Date();

var differenceTravel = toTime.getTime() - fromTime.getTime();
var seconds = Math.floor((differenceTravel) / (1000));
document.write('+ seconds +');
</script>


답변

아래 코드는 초의 시간 차이를 제공합니다.

var date1 = new Date(); // current date
var date2 = new Date("06/26/2018"); // mm/dd/yyyy format
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // in miliseconds
var timeDiffInSecond = Math.ceil(timeDiff / 1000); // in second

alert(timeDiffInSecond );


답변

고급 프로그래밍 언어의 전용 기능을 사용해보십시오. JavaScript는 .getSeconds();여기에 적합합니다 :

var specifiedTime = new Date("November 02, 2017 06:00:00");
var specifiedTimeSeconds = specifiedTime.getSeconds();

var currentTime = new Date();
var currentTimeSeconds = currentTime.getSeconds();

alert(specifiedTimeSeconds-currentTimeSeconds);


답변

momentjs를 사용하여 지금과 10 분 후의 시차

let start_time = moment().format('YYYY-MM-DD HH:mm:ss');
let next_time = moment().add(10, 'm').format('YYYY-MM-DD HH:mm:ss');

let diff_milliseconds = Date.parse(next_time) - Date.parse(star_time);
let diff_seconds = diff_milliseconds * 1000;


답변