我正在使用moment 2.16.0
,并希望从一个月开始。 toDate()
和format()
方法有不同的结果。这是jsfiddle。
代码: -
var time=moment().subtract(0,'months').startOf("month").format();
console.log(time); //2016-12-01T00:00:00+05:30
var time2=moment().subtract(0, 'months').endOf("month").format();
console.log(time2); //2016-12-31T23:59:59+05:30
var time=moment().subtract(0,'months').startOf("month").toISOString();
console.log(time); //2016-11-30T18:30:00.000Z here i want somethings like 2016-12-01T00:00:00.000Z
var time2=moment().subtract(0, 'months').endOf("month").toISOString();
console.log(time2); // 2016-12-31T18:29:59.999Z here i want somethings like 2016-12-31T59:59:59.000Z
答案 0 :(得分:1)
除toISOString
之外,您的所有操作都使用本地时间,这将为您提供UTC字符串。由于您的时区偏离UTC,因此本地时间字符串(来自format
)和UTC时间字符串(来自toISOString
)非常不同。
这里我想要的东西如2016-12-01T00:00:00.000Z
这与Moment实例所代表的时间不同。
如果您想在当地时间使用ISO-8601格式但,可以将format
与适当的格式化代码组一起使用,但是您不需要Z
最后,因为您还没有处理UTC(" Zulu")时间,您需要处理当地时间。
moment().format("YYYY-MM-DDThh:mm:ss.SSS")