날짜가 두 개인 경우 어떻게 사용할 수 있습니까 JavaScript 를 하여 두 날짜의 차이를 분 단위로 가져 오려면 어떻게해야합니까?
날짜가 두 개인 경우 어떻게 사용할 수 있습니까 JavaScript 를 하여 두 날짜의 차이를 분 단위로 가져 오려면 어떻게해야합니까?
답변:
이 코드를 확인할 수 있습니다 :
var today = new Date();
var Christmas = new Date("2012-12-25");
var diffMs = (Christmas - today); // milliseconds between now & Christmas
var diffDays = Math.floor(diffMs / 86400000); // days
var diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours
var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
alert(diffDays + " days, " + diffHrs + " hours, " + diffMins + " minutes until Christmas 2009 =)");
또는 var diffMins = Math.floor((...
폐기 초에 당신은 라운드 분하지 않으려면.
Math.round(((diffMs % 86400000) % 3600000) / 60000);
차이가 60 분을 초과하면 작동하지 않습니다
2 개의 Date 객체를 빼면 밀리 초 단위의 차이가 나타납니다. 예 :
var diff = Math.abs(new Date('2011/10/09 12:00') - new Date('2011/10/09 00:00'));
Math.abs
절대 차이를 사용할 수 있습니다. new Date('2011/10/09 00:00') - new Date('2011/10/09 12:00')
동일한 결과 제공).
결과를 1000으로 나누면 몇 초가 걸립니다. 60으로 나누면 몇 분이 걸립니다. 전체 분, 사용 라운드 Math.floor
나 Math.ceil
:
var minutes = Math.floor((diff/1000)/60);
이 예에서 결과는 720입니다
(Math.floor(seconds/60))+':'+((seconds/60)%60)
남은 초도 필요하다면
new Date(string)
ISO-8601 형식 문자열 이외의 형식과 함께 사용해서는 안됩니다 . Date.parse가 왜 잘못된 결과를 제공합니까?를 참조하십시오 . , 또는 숫자 만 사용하십시오 (예 : new Date(2011, 9, 9, 12, 0, 0)
월은 0 기준 임).
var startTime = new Date('2012/10/09 12:00');
var endTime = new Date('2013/10/09 12:00');
var difference = endTime.getTime() - startTime.getTime(); // This will give difference in milliseconds
var resultInMinutes = Math.round(difference / 60000);
new Date(string)
ISO-8601 형식 문자열 이외의 형식과 함께 사용해서는 안됩니다 . Date.parse가 왜 잘못된 결과를 제공합니까?를 참조하십시오 . , 또는 숫자 만 사용하십시오 (예 : new Date(2011, 9, 9, 12, 0, 0)
월은 0 기준 임).
이 계산을 수행하는 간단한 함수 :
function getMinutesBetweenDates(startDate, endDate) {
var diff = endDate.getTime() - startDate.getTime();
return (diff / 60000);
}
두 날짜의 차이를 분 단위로 표시해야합니다. 브라우저에서 사용해보십시오 :
const currDate = new Date('Tue Feb 13 2018 13:04:58 GMT+0200 (EET)')
const oldDate = new Date('Tue Feb 13 2018 12:00:58 GMT+0200 (EET)')
(currDate - oldDate) / 60000 // 64
(currDate.getTime() - oldDate.getTime()) / 60000
작은 숫자로 작업하고 싶은 사람들을 위해
const today = new Date();
const endDate = new Date(startDate.setDate(startDate.getDate() + 7));
const days = parseInt((endDate - today) / (1000 * 60 * 60 * 24));
const hours = parseInt(Math.abs(endDate - today) / (1000 * 60 * 60) % 24);
const minutes = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000 * 60) % 60);
const seconds = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000) % 60);
이 문제는 다음 예제와 같이 moment.js로 쉽게 해결됩니다.
var difference = mostDate.diff(minorDate, "minutes");
다른 파라미터에 대해서는 두 번째 파라미터를 변경할 수 있습니다. moment.js 설명서를 참조하십시오.
예 : "일", "시간", "분"등
moment.js의 CDN은 다음에서 사용할 수 있습니다.
https://cdnjs.com/libraries/moment.js
감사.
편집하다:
mostDate 및 minorDate는 모멘트 유형이어야합니다.
노드에서 비슷한 것을 해결하는 재미가 있습니다.
function formatTimeDiff(date1, date2) {
return Array(3)
.fill([3600, date1.getTime() - date2.getTime()])
.map((v, i, a) => {
a[i+1] = [a[i][0]/60, ((v[1] / (v[0] * 1000)) % 1) * (v[0] * 1000)];
return `0${Math.floor(v[1] / (v[0] * 1000))}`.slice(-2);
}).join(':');
}
const millis = 1000;
const utcEnd = new Date(1541424202 * millis);
const utcStart = new Date(1541389579 * millis);
const utcDiff = formatTimeDiff(utcEnd, utcStart);
console.log(`Dates:
Start : ${utcStart}
Stop : ${utcEnd}
Elapsed : ${utcDiff}
`);
/*
Outputs:
Dates:
Start : Mon Nov 05 2018 03:46:19 GMT+0000 (UTC)
Stop : Mon Nov 05 2018 13:23:22 GMT+0000 (UTC)
Elapsed : 09:37:02
*/
https://repl.it/@GioCirque/TimeSpan-Formatting 에서 실제로 작동하는 것을 볼 수 있습니다
다음과 같이 할 수 있습니다 :
difference of dates
(차이는 밀리 초입니다)milliseconds
에 minutes
즉ms/1000/60
코드:
let dateOne = new Date("2020-07-10");
let dateTwo = new Date("2020-07-11");
let msDifference = dateTwo - dateOne;
let minutes = Math.floor(msDifference/1000/60);
console.log("Minutes between two dates =",minutes);