我是新來的,我需要通過一周中的天數來獲得最近的日期。
根據當前日期,我需要獲取,例如:
const currentWeekDay = '4'; (14.04)
const preparedAlternativeDates = [
{ DAY: 1, VALUE: '18.04' },
{ DAY: 2, VALUE: '19.04'},
{ DAY: 3, VALUE: '20.04'},
{ DAY: 4, VALUE: '21.04'},
{ DAY: 5, VALUE: '15.04'},
{ DAY: 6, VALUE: '16.04'},
{ DAY: 7, VALUE: '17.04'},
];
我正在嘗試使用下面的腳本,但它不起作用。也許有更簡單的方法可以做到這一點?
const ALTERNATIVE_DATES = Object.freeze([
{ DAY: 1, VALUE: null },
{ DAY: 2, VALUE: null },
{ DAY: 3, VALUE: null },
{ DAY: 4, VALUE: null },
{ DAY: 5, VALUE: null },
{ DAY: 6, VALUE: null },
{ DAY: 7, VALUE: null },
]);
const preparedAlternativeDates = ALTERNATIVE_DATES.map((alternativeDate: any) => {
if (!alternativeDate.VALUE) {
const alternativeDateDay = Number(alternativeDate.DAY);
const currentWeekDay = Number(moment().isoWeekday());
if (alternativeDateDay <= currentWeekDay) {
alternativeDate.VALUE = moment().add(alternativeDateDay currentWeekDay - 1, 'd').startOf('day');
} else {
alternativeDate.VALUE = moment().add(alternativeDateDay - currentWeekDay, 'd').startOf('day');
}
}
return {
day: alternativeDate.DAY,
value: alternativeDate.VALUE
};
});
我將不勝感激任何幫助。
uj5u.com熱心網友回復:
我剛剛調整了您的代碼并測驗了結果。這應該適合你:
const ALTERNATIVE_DATES = Object.freeze([
{ DAY: 1, VALUE: null },
{ DAY: 2, VALUE: null },
{ DAY: 3, VALUE: null },
{ DAY: 4, VALUE: null },
{ DAY: 5, VALUE: null },
{ DAY: 6, VALUE: null },
{ DAY: 7, VALUE: null },
]);
const preparedAlternativeDates = ALTERNATIVE_DATES.map((alternativeDate: any) => {
if (!alternativeDate.VALUE) {
const wishedDay = Number(alternativeDate.DAY);
const today = moment().isoWeekday();
if (today < wishedDay) {
alternativeDate.VALUE = moment().isoWeekday(wishedDay).format('DD.MM');
} else {
alternativeDate.VALUE = moment().add(1, 'weeks').isoWeekday(wishedDay).format('DD.MM');
}
}
return {
day: alternativeDate.DAY,
value: alternativeDate.VALUE,
};
});

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/461657.html
標籤:javascript 打字稿 日期 时刻
