Maison  >  Questions et réponses  >  le corps du texte

javascript - Utilisez moment.js pour générer la structure de données du calendrier pour le mois spécifié

Veuillez me donner une bonne pratique. Je ne connais pas le moment (je regarde l'API depuis un jour et je comprends les bases, je ne veux pas prendre le mauvais chemin, alors je le ferais). J'aimerais vous donner la structure de données finale. Par exemple, [[26,27,28, 1,2,3,4], [], [], ...]

.

Merci, pouah haha

天蓬老师天蓬老师2712 Il y a quelques jours1260

répondre à tous(3)je répondrai

  • 大家讲道理

    大家讲道理2017-05-19 10:26:49

    Il ne semble y avoir aucune méthode pour générer directement un calendrier dans l'API moment.js

      monthDay(date) {
        const daysArr = [[], [], [], [], [], []]; // 6*7的日历数组
        const currentWeekday = moment(date).date(1).weekday(); // 获取当月1日为星期几
        const lastMonthDays = moment(date).subtract(1, 'month').daysInMonth(); // 获取上月天数
        const currentMonthDays = moment(date).daysInMonth(); // 获取当月天数
        const getDay = day => (day <= lastMonthDays ? day : (day <= (lastMonthDays + currentMonthDays)) ? day - lastMonthDays : day - (lastMonthDays + currentMonthDays)); // 日期处理
        for (let i = 0; i < 7; i += 1) {
          let virtualDay = (lastMonthDays - currentWeekday) + i;
          for (let j = 0; j < 6; j += 1) {
            daysArr[j][i] = getDay(virtualDay + (j * 7));
          }
        }
        console.table(daysArr);
      }
      ...
      monthDay(date); //date格式为moment能识别的格式
      ...

    Idée générale :

    1. Construire un tableau 6*7 joursArr

    2. Obtenez le nombre de jours du mois précédent, le nombre de jours de ce mois et le jour de la semaine correspondant au premier de ce mois (0 signifie lundi)

    3. Calculez ensuite la date correspondant à daysArr[0][0] (le nombre de jours du mois précédent - la semaine correspondant au premier de ce mois)daysArr[0][0]对应的日期(上月天数 - 本月一号对应的星期)

    4. 根据daysArr[0][0]

    Calculez les valeurs des autres éléments de dayArr en fonction de daysArr[0][0]🎜🎜 🎜

    répondre
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:26:49

    Un tableau de dates unidimensionnel peut être considéré comme suit :

    const dates = []
    for(let i = 0; i < 42; i+=1) {
      const startDate = moment('2017-05-20').date(1);
      dates[i] = startDate.weekday(i).date();
    };
    console.log(dates);

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-19 10:26:49

    let result = [...Array(42).keys()].reduce((acc, val) => {
        acc.push(moment().add(val, 'day').format('YYYY/MM/DD'));
        return acc;
    }, []);
    

    répondre
    0
  • Annulerrépondre