我看到一些令人惊讶的行为,暂时增加一段时间:
var moment = require('moment');
var now = new moment();
var halfday = moment.duration(1/2, 'd');
var fullday = moment.duration(1, 'd');
var day_ago = now.clone().subtract(fullday);
var halfday_ago = now.clone().subtract(halfday);
var otherhalf_ago = now.clone().subtract(halfday.as('ms'));
if (day_ago.isSame(halfday_ago)) { console.log("surprise!"); }
if (!halfday_ago.isSame(otherhalf_ago)) { console.log("surprise!"); }
检查实际日期,减去半天减去一整天(并且添加半天不会增加任何内容)。使用halfday.as('ms')进行计算会产生正确的结果。在这方面,momentjs代码是非常不透明的,这是预期的行为吗?