如何在 moment.js 中获取当前周 b/w 的天数
How to get the Days b/w current week in moment.js
我是 angular js 的新手,moment.js 我有以下代码,它给出了一周的开始日期和结束日期,例如 1 月 17 日至 1 月 23 日。但我希望 1 月 17 日星期一的所有 7 天都采用这种格式。
我的代码
var currentDate,
weekStart,
weekEnd,
shortWeekFormat = 'MMMM Do';
function setCurrentDate(aMoment){
currentDate = aMoment,
weekStart = currentDate.clone().startOf('week'),
weekEnd = currentDate.clone().endOf('week')
}
setCurrentDate(moment());
$scope.currentWeek = function(){ return currentDate.format(shortWeekFormat); };
$scope.currentWeekStart = function(){ return weekStart.format(shortWeekFormat); };
$scope.currentWeekEnd = function(){ return weekEnd.format(shortWeekFormat); };
HTML
<h2><i class="fa fa-arrow-left"></i>Week Of {{currentWeek()}}{{currentWeekStart()}}-{{currentWeekEnd()}}<i class="fa fa-arrow-right"></i></h2>
<button ng-click="prevWeek()">previous week</button>
<button ng-click="nextWeek()">next week</button>
你想要的格式可以用下面的代码实现。
moment('01/19/2016').format("MMMM Do,dddd");
现在,要获取一周之间的所有日期,您需要使用包含所有七个日期的数组。通过简单的 for 循环将天数添加到开始日期,您可以实现您想要的。看看下面的示例代码。
var currentDate = moment();
var weekStart = currentDate.clone().startOf('week');
var weekEnd = currentDate.clone().endOf('week');
var days = [];
for (i = 0; i <= 6; i++) {
days.push(moment(weekStart).add(i, 'days').format("MMMM Do,dddd"));
};
console.log(days);
console.log(moment('01/19/2016').format("MMMM Do,dddd"));
现在要将它与 angular 一起使用,您可以将天数数组分配给某个范围变量并使用 ng-repeat 显示日期。
改进J-D的回答。这将 return 一个矩对象数组:
const getCurrentWeekDays = () => {
const weekStart = moment().startOf('week');
const days = [];
for (let i = 0; i <= 6; i++) {
days.push(moment(weekStart).add(i, 'days'));
}
return days;
}
我是 angular js 的新手,moment.js 我有以下代码,它给出了一周的开始日期和结束日期,例如 1 月 17 日至 1 月 23 日。但我希望 1 月 17 日星期一的所有 7 天都采用这种格式。
我的代码
var currentDate,
weekStart,
weekEnd,
shortWeekFormat = 'MMMM Do';
function setCurrentDate(aMoment){
currentDate = aMoment,
weekStart = currentDate.clone().startOf('week'),
weekEnd = currentDate.clone().endOf('week')
}
setCurrentDate(moment());
$scope.currentWeek = function(){ return currentDate.format(shortWeekFormat); };
$scope.currentWeekStart = function(){ return weekStart.format(shortWeekFormat); };
$scope.currentWeekEnd = function(){ return weekEnd.format(shortWeekFormat); };
HTML
<h2><i class="fa fa-arrow-left"></i>Week Of {{currentWeek()}}{{currentWeekStart()}}-{{currentWeekEnd()}}<i class="fa fa-arrow-right"></i></h2>
<button ng-click="prevWeek()">previous week</button>
<button ng-click="nextWeek()">next week</button>
你想要的格式可以用下面的代码实现。
moment('01/19/2016').format("MMMM Do,dddd");
现在,要获取一周之间的所有日期,您需要使用包含所有七个日期的数组。通过简单的 for 循环将天数添加到开始日期,您可以实现您想要的。看看下面的示例代码。
var currentDate = moment();
var weekStart = currentDate.clone().startOf('week');
var weekEnd = currentDate.clone().endOf('week');
var days = [];
for (i = 0; i <= 6; i++) {
days.push(moment(weekStart).add(i, 'days').format("MMMM Do,dddd"));
};
console.log(days);
console.log(moment('01/19/2016').format("MMMM Do,dddd"));
现在要将它与 angular 一起使用,您可以将天数数组分配给某个范围变量并使用 ng-repeat 显示日期。
改进J-D的回答。这将 return 一个矩对象数组:
const getCurrentWeekDays = () => {
const weekStart = moment().startOf('week');
const days = [];
for (let i = 0; i <= 6; i++) {
days.push(moment(weekStart).add(i, 'days'));
}
return days;
}