如何在全日历中显示日期和工作日名称?
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;
从上面的解决方案我有以下
现在我想显示日期,就像我在上面提供的促销日期一样
而不是01
和02
等,应该是sun o1
、mon 02
、tue 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。
我正在使用完整的日历 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;
从上面的解决方案我有以下
现在我想显示日期,就像我在上面提供的促销日期一样
而不是01
和02
等,应该是sun o1
、mon 02
、tue 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。