순간 버전 : 2.0.0
docs를 읽은 후 이것이 간단하다고 생각했습니다 (Chrome 콘솔).
var timestring1 = "2013-05-09T00:00:00Z";
var timestring2 = "2013-05-09T02:00:00Z";
var startdate = moment(timestring1);
var expected_enddate = moment(timestring2);
var returned_endate = startdate.add(moment.duration(2, 'hours'));
returned_endate == expected_enddate // false
returned_endate // Moment {_i: "2013-05-09T00:00:00Z", _f: "YYYY-MM-DDTHH:mm:ss Z", _l: undefined, _isUTC: false, _a: Array[7]…}
이것은 사소한 예이지만 작동조차 할 수 없습니다. 나는 여기에 큰 것을 놓친 것처럼 느껴지지만 실제로는 얻지 못합니다. 이것조차도 작동하지 않는 것 같습니다.
startdate.add(2, 'hours')
// Moment {_i: "2013-05-09T00:00:00Z", _f: "YYYY-MM-DDTHH:mm:ss Z", _l: undefined, _isUTC: false, _a: Array[7]…}
도움을 주시면 감사하겠습니다.
편집 :
내 최종 목표는 내가 작업중 인 것과 같은 이진 상태 차트를 만드는 것입니다 :
http://bl.ocks.org/phobson/5872894
보시다시피, 현재이 문제를 해결하는 동안 더미 x 값을 사용하고 있습니다.
답변
나는 당신이 문서의 요점을 놓쳤다 고 생각합니다. .add()
시간을 추가하여 원래 순간을 음소거합니다.
불변의 결과를 반환하는 함수로 취급하는 것 같습니다. 쉬운 실수. 🙂
리턴 값을 사용하는 경우 시작한 것과 동일한 실제 오브젝트입니다. 메소드 체인의 편의상 방금 리턴되었습니다.
여기에 설명 된대로 순간을 복제하여이 동작을 해결할 수 있습니다 .
또한 ==
테스트하는 데만 사용할 수는 없습니다 . 각 순간을 동일한 출력으로 형식화하여 비교하거나 .isSame()
방법을 사용할 수 있습니다 .
귀하의 코드는 다음과 같습니다.
var timestring1 = "2013-05-09T00:00:00Z";
var timestring2 = "2013-05-09T02:00:00Z";
var startdate = moment(timestring1);
var expected_enddate = moment(timestring2);
var returned_endate = moment(startdate).add(2, 'hours'); // see the cloning?
returned_endate.isSame(expected_enddate) // true
답변
실시간 경로를 추적하는 응용 프로그램을 만들고 있습니다. 승객은 운전자의 현재 위치와 예상 도착 시간을 자신의 위치에 표시하려고합니다. 따라서 현재 시간에 약간의 지속 시간을 추가해야합니다.
그래서 아래에서 언급 한 방식으로 동일한 작업을 수행했습니다. 현재 시간에 모든 시간 (시간, 분 및 초)을 순간별로 추가 할 수 있습니다.
var travelTime = moment().add(642, 'seconds').format('hh:mm A');// it will add 642 seconds in the current time and will give time in 03:35 PM format
var travelTime = moment().add(11, 'minutes').format('hh:mm A');// it will add 11 mins in the current time and will give time in 03:35 PM format; can use m or minutes
var travelTime = moment().add(2, 'hours').format('hh:mm A');// it will add 2 hours in the current time and will give time in 03:35 PM format
내 요구 사항을 충족시킵니다. 도움이 될 수 있습니다.
답변
startTime
(12h : 30 : 30과 같은) 및 duration
(120과 같은 분 단위의 값 )을 가진 사람들의 경우 다음 endTime
과 같이 추측 할 수 있습니다 .
const startTime = '12:30:00';
const durationInMinutes = '120';
const endTime = moment(startTime, 'HH:mm:ss').add(durationInMinutes, 'minutes').format('HH:mm');
// endTime is equal to "14:30"