如何使用 moment.js 逻辑地处理新年之交?

问题描述 投票:0回答:1

基本上,我有一个动态下拉列表,从当前的 isoWeeks 开始。当选择下拉列表中的 isoWeek 时,将调用一个函数。

var currentWeek = localStorage.getItem('currentWeek');
var currentYear = localStorage.getItem('currentYear');

var dropdownKalender = document.getElementById('dropdown_kalender');
var newWeek = dropdownKalender.options[dropdownKalender.selectedIndex].value;
localStorage.setItem('currentWeek', newWeek);

newWeek
变量是所选周,采用
moment().isoWeek()
格式。现在我需要逻辑来检查所选的一周是否在明年(或者如果之前已经选择了未来的一周,则它是否回到当年)。我很确定这是为了检查一周是否大于另一周,但正如之前所说,我陷入了逻辑部分。

javascript logic momentjs
1个回答
0
投票

当然!您可以使用 Moment.js 库更轻松地处理日期和星期计算。假设您使用 Moment.js,以下是如何检查所选周是否在下一年的示例:

var currentWeek = localStorage.getItem('currentWeek');
var currentYear = localStorage.getItem('currentYear');

var newWeek = dropdownKalender.options[dropdownKalender.selectedIndex].value;

var selectedWeekMoment = moment().isoWeekYear(currentYear).isoWeek(newWeek);

// Check if the selected week is in the next year
if (selectedWeekMoment.isAfter(moment().isoWeekYear(currentYear))) {
    console.log('Selected week is in the next year.');
    // You can handle the logic for the next year here
} else {
    console.log('Selected week is in the current year or before.');
    // You can handle the logic for the current year or before here
}

// Update the local storage with the new selected week
localStorage.setItem('currentWeek', newWeek);

此代码片段使用 Moment.js 为所选周创建 Moment 对象,并将其与当前周进行比较。 isAfter 函数检查所选周是否在当前周之后,表明它是在下一年。根据您的具体要求调整 if-else 块内的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.