MomentJs:endOf(' month')不提供一个月的最后一天

时间:2017-02-01 13:15:32

标签: javascript momentjs

我初始日期的console.log显示:

Fri Apr 01 2016 02:00:00 GMT+0200 (CEST)

这就是我的所作所为:

  // first day is guaranteed to be a first day of month by default
  var firstDayOfMonth = moment.utc(initialDate).startOf('day');
  var lastDayOfMonth = firstDayOfMonth.clone();
  lastDayOfMonth.endOf('month');
  console.log(firstDayOfMonth.toDate()); // Fri Apr 01 2016 02:00:00 GMT+0200 (CEST)
  console.log(lastDayOfMonth.toDate()); // Sun May 01 2016 01:59:59 GMT+0200 (CEST)

但是4月的最后一天当然不是5月1日。

它可能与夏季问题(CEST)有关?但我需要它在任何时区工作 - 我已经尝试将任何设置为UTC以摆脱这些烦人的时区问题。

1 个答案:

答案 0 :(得分:4)

使用moment.format()代替toDate()来获取UTC。对于不同的格式,请参考Multiple Locale Support此处https://momentjs.com/

例如,

console.log(lastDayOfMonth.format('LLLL')); 

output: Saturday, April 30, 2016 11:59 PM