【发布时间】:2016-08-29 19:45:03
【问题描述】:
我正在修改 Angular 的 UI Bootstrap Datepicker 以允许一周选择模式。为了使它有效地工作,我需要将activeDate 设置为给定一周的第一个星期日,所以如果您选择一个日期,比如 2016 年 8 月 29 日这样的星期一,它会将您的选择转换为较早的星期日,2016 年 8 月 28 日。
这就是选择函数的样子。如果对在警报匹配的else if 块中转换为星期日逻辑感兴趣。
$scope.select = function(date) {
if ($scope.datepickerMode === self.minMode) {
var dt = ngModelCtrl.$viewValue ? dateParser.fromTimezone(new Date(ngModelCtrl.$viewValue), ngModelOptions.timezone) : new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
dt = dateParser.toTimezone(dt, ngModelOptions.timezone);
ngModelCtrl.$setViewValue(dt);
ngModelCtrl.$render();
}
else if($scope.datepickerMode =="week")
{
alert("Match!");
self.activeDate = date.firstSundayofthatweek() //what do I actually put here using Moment.js?
setMode(self.modes[self.modes.indexOf($scope.datepickerMode) - 1]);
$scope.$emit('uib:datepicker.mode');
}
else {
self.activeDate = date;
setMode(self.modes[self.modes.indexOf($scope.datepickerMode) - 1]);
$scope.$emit('uib:datepicker.mode');
}
$scope.$broadcast('uib:datepicker.focus');
};
我正在使用 moment.js,但无法在他们的文档中弄清楚如何做到这一点。香草JS答案也将不胜感激。传递给函数的date 是一个日期对象。
Moment 文档建议:
moment().day(-7);
或
moment().weekday(-7);
但我传递的是一个日期对象,而不是片刻......所以我要转换或链接还是什么?抱歉有点困惑...我还需要将日期对象返回给self.activeDate
【问题讨论】:
标签: javascript