瞬间版本:2.0.0
阅读文档后,我认为这很简单(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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句