如何获得给定年份的最后一天与时刻?

时间:2020-02-12 05:20:29

标签: javascript typescript momentjs

我可以对一年的最后一天进行硬编码,因为无论如何总会是12月31日。有许多使用datejsjquery的解决方案。但是我正在开发Angular项目,因此我的代码在typescript中。我的技术负责人希望我使用moment进行此操作。我不应该对任何日期进行硬编码。 moment是否提供任何内置方法来获取给定年份的最后一天。我说给定年是因为在我的情况下,给定年是动态的。它可以随时更改。我正在使用endOf()方法。自定义年份出现错误。我的意思是:

const lastDayOfYear = moment().endOf('year')工作正常,但是:

const lastDayOfYear = moment().endOf(2025)给我这个错误:

类型'2025'的参数不能分配给类型'StartOf'的参数

我也尝试过:

  1. const lastDayOfYear = moment().endOf("2025");
  2. year=2025; const lastDayOfYear = moment().endOf(year);

此方法将如何工作?我已经阅读了整个Moment docs。还是我应该坚持使用JavaScript的Date。像这样:

new Date(new Date().getFullYear(), 11, 31);

请提供解决方案。

PS:我只想使用MM-DD-YYYY格式的给定年份的最后日期。

3 个答案:

答案 0 :(得分:3)

moment(date).endOf('year');

日期是该年某处的日期。

答案 1 :(得分:1)

如果您真的想立即解决问题,而不是使用`12-31-$ {year}`,则可以使用:

moment([year]).endOf('year').format('MM-DD-YYYY')

答案 2 :(得分:1)

设置当前日期为 新日期()

const now = moment(new Date()).endOf('year');
alert(now);