【问题标题】:moment.js and to get the trailing date in a calendar viewmoment.js 并在日历视图中获取尾随日期
【发布时间】:2015-10-19 21:16:54
【问题描述】:

鉴于今天是 2015 年 10 月,在日历视图中,9 月 27 日至 29 日出现在日历上,10 月 31 日出现。我想获取日历上显示的开始日期和结束日期,所以在这种情况下,它是 2015 年 9 月 27 日和 2015 年 10 月 31 日。

我正在使用 moment.js 来尝试计算它。我的想法是我会得到日历周,然后将其转换为查找开始日期,然后获取日历显示的结束周,并将其转换为显示的最后日期。它被证明是相当具有挑战性的,这让我认为有一个更简单的方法。

我正在查看此处找到的文档:http://momentjs.com/docs/#/get-set/,但我无法将一些事件链接在一起。

我有这个可以让我知道一年中的月份:

var day = '2015-10-19';
var getStartWeekYear = moment(day).startOf("month").week();
var getEndDateWeekYear = moment(day).endOf("month").week();

这将返回给定日期(天)的预期值 40 和 44,但下一步是什么?

【问题讨论】:

    标签: javascript date momentjs


    【解决方案1】:

    这比你想象的要容易。 :)

    var day = '2015-10-19';
    var start = moment(day).startOf('month').startOf('week').format('YYYY-MM-DD');
    var end = moment(day).endOf('month').endOf('week').format('YYYY-MM-DD');
    
    console.log(start); // "2015-09-27"
    console.log(end);   // "2015-10-31"
    

    【讨论】:

    • 谢谢!这比我想象的要容易。我的一次尝试很接近,我有var start = moment(day).startOf("month").week();
    • 是的,你很接近。 :) week 函数用于按周数获取或设置周数,但在这种情况下,周数本身并不重要,只需移动到一周的开始或结束.还要记住,一周开始的星期几是特定于语言环境的。这可能是您想要的,但您可以改用 isoWeek,它将总是从星期一开始一周。
    • 特定于语言环境是我们想要的,但这是其他任何人考虑谁偶然发现这一点的好点。 +1
    猜你喜欢
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    相关资源
    最近更新 更多