如何在全日历中显示日期和工作日名称?

How to show date and weekday name in fullcallendar?

我正在使用完整的日历 API api 在我的网站上显示日历,其灵感来自 promo.com 日历,如下所示。

这是我使用 React js 组件的解决方案

import React, { useState, useEffect, useContext, useRef } from 'react';
import { Calendar as FullCalendar } from '@fullcalendar/core';
import googleCalendarPlugin from '@fullcalendar/google-calendar';
import dayGridPlugin from '@fullcalendar/daygrid';
import timeGridPlugin from '@fullcalendar/timegrid';
import interactionPlugin from '@fullcalendar/interaction';
import calendartopbg from 'assets/images/calendar_bg.png';
import cloud from 'assets/images/calendar_chmurka.png';
import styled from 'styled-components';

const Calendar = () => {
    const [calendar, setCalendar] = useState('');
    const calendarRef = useRef('');

    useEffect(() => {
        if (calendarRef.current) {
             console.log(FullCalendar);
            setCalendar(new FullCalendar(calendarRef.current, {
                plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin, googleCalendarPlugin],
                theme: false,
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'dayGridMonth,listYear',

                  },  
                  views: {
                    day: {
                      titleFormat: 'dddd, MMMM Do YYYY'
                    }
                  },

                  googleCalendarApiKey: 'AIzaSyDcnW6WejpTOCffshGDDb4neIrXVUA1EAE',
                  events: 'en.usa#holiday@group.v.calendar.google.com',
                  eventClick: function(arg) {

                    // opens events in a popup window
                    window.open(arg.event.url, '_blank', 'width=700,height=600');

                    // prevents current tab from navigating
                    arg.jsEvent.preventDefault();
                  }
            }));        
        }
    }, [calendarRef.current]);

    console.log(calendar);

    return (
        <>
           <CalendarBackgroundWrapper>
                <img style={imagestyle} src={calendartopbg} />
         </CalendarBackgroundWrapper>

            <CalendarContainer ref={calendarRef}>
                {calendar && calendar.render ? calendar.render(): null}
            </CalendarContainer>

        </>
    )
}

export default Calendar;

从上面的解决方案我有以下

现在我想显示日期,就像我在上面提供的促销日期一样

而不是0102等,应该是sun o1mon 02tue 03

如何使用完整的日历实现这一点 API。?

@user9964622,可以使用下面的代码作为起点,应该通过 CSS 和您的代码进一步优化:

写一个函数来获取日期名称:

function getDayName(date) {
    var days = new Array(7);
    days[0] = "SUN";
    days[1] = "MON";
    days[2] = "TUE";
    days[3] = "WED";
    days[4] = "THU";
    days[5] = "FRI";
    days[6] = "SAT";
    var r = days[date.getDay()];
    return (r);
}

在 FullCalendar 中包含以下代码:

columnHeader: false,    
dayRender: function( dayRenderInfo ) {
    var dayName = getDayName(dayRenderInfo.date);
    var dayNumber = dayRenderInfo.date.getDate();
    dayRenderInfo.el.innerHTML = dayName + "<br/>" + dayNumber;
}

您应该应用 css 来隐藏当前日期:

.fc-day-number {display: none;}

此外,您可以应用样式并在 dayRender 中包含更多 html。