JavaScript 날짜 객체에 10 초를 어떻게 추가 할 수 있습니까?
이 같은:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
JavaScript 날짜 객체에 10 초를 어떻게 추가 할 수 있습니까?
이 같은:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
답변:
있다 setSeconds아니라 방법 :
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
다른 Date 기능 의 목록을 보려면 MDN을 확인하십시오
setSeconds 랩 어라운드 케이스를 올바르게 처리합니다.
var d;
d = new Date('2014-01-01 10:11:55');
alert(d.getMinutes() + ':' + d.getSeconds()); //11:55
d.setSeconds(d.getSeconds() + 10);
alert(d.getMinutes() + ':0' + d.getSeconds()); //12:05
typeof new Date().getSeconds()반환 'number'되므로 노드가 오래된 버전이 아닌 경우 다른 문제가있을 수 있습니다.
d.setSeconds(d.getSeconds() - 92);하고 당신은 2'32 "대신 1'32의 차이"로 끝날 것이다. 그러나 해결책은 new Date(d.getTime() - 92*1000);작동합니다!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
우리 사이의 성능 미치광이를 위해.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5,196,949 Ops / sec, 가장 빠른
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2,936,604 Ops / sec, 43 % 느림
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22,549 Ops / sec, 100 % 느림
아마도 가장 인간이 읽을 수는 없지만 (나쁜 것은 아니지만) 가장 빠른 방법 :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
또한 JavaScript Date 객체에 30 분을 추가하는 방법을 참조하십시오.
var timestamp = Date.parse("2011-03-26T20:59:59.999Z"); var d = new Date(timestamp); d.setSeconds(d.getSeconds() + 10); console.log(d.getTime() - timestamp);
timeObject.setSeconds(timeObject.getSeconds() + 10)
Date()자바 스크립트 의 객체는 그렇게 똑똑하지 않습니다.
초를 추가하는 데 집중하면 부드럽게 처리하는 것처럼 보이지만 X 초를 추가하려고하면 X 분 및 시간 등을 같은 Date객체에 추가하여 문제가 발생합니다. 그래서 나는 단순히 setSeconds()방법을 사용하고 내 데이터를 초로 변환 하는 것으로 돌아 갔습니다 (잘 작동했습니다).
누구나 Date()모든 set 메소드를 사용하여 전역 객체에 시간을 추가하는 것을 보여줄 수 있고 마지막 시간이 올바르게 나오고 싶다면 그것을보고 싶지만 주어진 Date()객체 에서 한 번에 하나의 set 메소드를 사용해야한다는 의미가 있습니다. 그것들을 섞으면 엉망이됩니다.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
이 방법으로 시도하십시오.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
그냥 전화하고 할당 new Date().addSeconds(10)