【问题标题】:Get days using Javascript with Moment.js使用 Javascript 和 Moment.js 获得几天
【发布时间】:2021-05-30 09:07:39
【问题描述】:

我有这个代码来获取一周的剩余天数:

const getWeekDates = () => {
    let weekDates = [];
    let remain = 7 - moment().day();
    for (let i = 0; i < remain; i++) {
        weekDates.push(moment().add(i, 'd'));
    }
    return weekDates;
};
console.log(getWeekDates());
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"&gt;&lt;/script&gt;

我的问题是:

  • 你如何知道下周的日子?
  • 如何获得当月的剩余天数?
  • 你如何知道下个月的日子?

【问题讨论】:

  • 请注意:moment.js 现在处于维护模式,您应该开始使用另一个库。 Luxon 来自 moment.js 的团队之一,但我会推荐 day.js。
  • 您如何定义“一周中的剩余天数”?当我在周日晚上尝试这个时,我今天一直到下周六。同样的问题适用于您的所有要求,即“下周”什么时候开始?
  • @Jamiec 完全正确,如果你是这个意思,一周中剩余的几天总是在星期六结束

标签: javascript momentjs


【解决方案1】:

使用

moment(jso).endOf('month').unix();

获取月底,jso 这里是日期参考。

为了获得下周的第一天和最后一天,这样的事情应该可以工作:

public static native String startOfNextWeek(JavaScriptObject today) /*-{
   return $wnd.moment(today).add(1,'weeks').startOf('week').unix();
}-*/;

public static native String endOfNextWeek(JavaScriptObject today) /*-{
   return $wnd.moment(today).add(1,'weeks').endOf('week').unix();
}-*/;

上面的代码使用GWT (a Java to JS transpiler),但这个想法应该很明显,首先获取今天的日期,然后从中添加1周,然后使用startOfendOf方法来表示“星期”。

【讨论】:

  • 显然下个月得到它会是这样的:$wnd.moment(today).add(1,'months').startOf('months').unix();
猜你喜欢
  • 2021-06-28
  • 1970-01-01
  • 2017-10-22
  • 1970-01-01
  • 2016-05-28
  • 2016-06-03
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
相关资源
最近更新 更多