【问题标题】:Get Last week date range from sunday to saturday moment js获取上周日期范围从星期日到星期六的时刻 js
【发布时间】:2018-08-01 12:35:42
【问题描述】:

我需要获取从星期日到星期六的上周日期范围,但是这段代码

moment().subtract(1, 'weeks').startOf('isoWeek')
moment().subtract(1, 'weeks').endOf('isoWeek')

给出从星期一到星期日的日期范围,如何使用时刻 js 获取从星期日到星期六的上周日期范围?

【问题讨论】:

  • 减了一周为什么不减一天呢?

标签: javascript momentjs


【解决方案1】:

isoWeek 根据 ISO 8601 标准为您提供一周的开始。根据国际标准 ISO 8601,星期一是一周的第一天。

您可以尝试在方法中使用week 而不是isoWeek,这将根据您的系统设置(区域设置)起作用。

console.log(moment().subtract(1, 'weeks').startOf('isoWeek').format('dddd'));
console.log(moment().subtract(1, 'weeks').endOf('isoWeek').format('dddd'));

console.log(moment().subtract(1, 'weeks').startOf('week').format('dddd'));
console.log(moment().subtract(1, 'weeks').endOf('week').format('dddd'));

console.log(moment().subtract(1, 'weeks').startOf('week').format('YYYY-MM-DD'));
console.log(moment().subtract(1, 'weeks').endOf('week').format('YYYY-MM-DD'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

阅读区别here

【讨论】:

  • 太棒了,可以格式化为YYYY-MM-DD
  • moment().subtract(1, 'weeks').startOf('week').format('yyyy-mm-dd') 没用
  • @mano10 -- 是的,根据要求使用适当的标记来格式化对象。
  • @31piy 我今天尝试使用此代码,但为什么它返回的是16-22 而不是上周日期范围内的17-23?我是这样用的:new Date(moment().subtract(1, 'weeks').startOf('week').format('YYYY-MM-DD'))Thanks.
【解决方案2】:

简单思考:首先设置周起始日

moment.updateLocale('en', {
    week : {
        dow :0  // 0 to 6 sunday to saturday
    }
});

//than get current week or get last week according to Sun -- Sat
'This Week': [moment().startOf('week'), moment().endOf('week')],
'Last Week': [moment().startOf('week').subtract(7,'days'), moment().endOf('week').subtract(7, 'days')],

在我使用“daterangepicker”的情况下,您可以简单地将它与 data-ranger 一起使用 希望你能理解

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多