2015-10-19 49 views
1

鉴于今天是2015年10月,在日历视图中,9月27日至29日出现在日历上,10月31日出现。我想获取日历上显示的开始日期以及结束日期,因此在这种情况下,应该是2015年9月27日和10/31/2015。moment.js并在日历视图中获取尾随日期

我正在使用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的预期值(天),但会下一步是什么呢?

回答

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" 
+0

谢谢!这比我想象的要容易。我接近了我的一个尝试,我有'var start = moment(day).startOf(“month”)。week();' – HPWD

+1

是的,你很接近。 :)“周”功能用于逐周获取或设置数字,但在这种情况下,周数本身并不重要,只是您*移动*到一周的开始或结束。另外请记住,一周开始的星期几是特定于语言环境的。这可能是你想要的,但是你可以使用'isoWeek',它会在周一开始。 –

+0

locale具体是我们想要的,但这是其他人考虑谁在这方面遇到困难的好处。 +1 – HPWD