gpt4 book ai didi

javascript - Moment.JS 获取给定日期之前的星期日

转载 作者:行者123 更新时间:2023-11-30 09:44:58 25 4
gpt4 key购买 nike

我正在修改 Angular 的 UI Bootstrap Datepicker 以允许一周选择模式。为了让它有效地工作,我需要将 activeDate 设置为给定一周的第一个星期日,所以如果你选择一个日期,比如像 2016 年 8 月 29 日这样的星期一,它会转换你的选择进入较早的星期日,8/28/16。

这就是选择函数的样子。如果对在警报匹配的 else if block 中转换为星期日逻辑感兴趣。

$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 但无法在他们的文档中弄清楚如何去做。 Vanilla JS 答案也将不胜感激。传递给函数的 date 是一个日期对象。

Moment 文档建议:

时刻().day(-7);

moment().weekday(-7);

但我传递的是日期对象,而不是片刻...所以我要转换或链接什么的吗?抱歉有点困惑...我还需要返回一个日期对象到 self.activeDate

最佳答案

要获取给定时刻的最后一个星期日,只需在该时刻使用 day() 以及日期名称即可。

var today = moment("29.08.2016", "DD.MM.YYYY");
var sunday = today.day("Sunday");
console.log(sunday.format("YYYY-MM-DD"));

如果您有一个Date 对象,只需将其解析为moment

moment(new Date());

关于javascript - Moment.JS 获取给定日期之前的星期日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com