在 FullCalendar 中格式化日期时间

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

我正在使用 FullCalendar,并且尝试将格式正确的开始和结束日期时间发送到 MySQL 数据库,以便更新事件。

这是相关代码:

首先,当我记录 arg.event.start 变量时,我得到这个:

  eventChange: function(arg) {  
       console.log(arg.event.start);

//this is what I get:
Sat Nov 19 2022 11:00:00 GMT-0600 (hora estándar central)

然后如果我尝试像这样解析它:

var theStart = FullCalendar.formatDate(arg.event.start, "YYYY-MM-dd HH:mm:ss");

我收到此错误:

Uncaught TypeError: context.cmdFormatter is not a function
at CmdFormatter.format (main.js:1549:28)
at DateEnv.format (main.js:4104:30)
at Object.formatDate (main.js:4288:24)
at Calendar.eventChange (calendario.jsp:78:30)
at Emitter.trigger (main.js:4850:25)
at EventDragging._this.handleDragEnd (main.js:11348:54)
at Emitter.trigger (main.js:4850:25)
at HitDragging.handleDragEnd (main.js:10893:31)
at Emitter.trigger (main.js:4850:25)
at FeaturefulElementDragging.stopDrag (main.js:10763:26)

如果我尝试这样做(使用 FullCalendar 对象的“日历”),我会得到同样的错误

var theStart = calendar.formatDate(arg.event.start, "YYYY-MM-dd HH:mm:ss");

如果有帮助,这就是 FullCalendar 代码的启动方式:

document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');

var calendar = new FullCalendar.Calendar(calendarEl, {
    locale: 'es',
    headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'addEventButton dayGridMonth,timeGridWeek,timeGridDay'
    },
    editable: true,
    selectable: true,
    ...
    ... 
    etc.

FullCalendar 加载的事件中的 JSON 日期时间格式如下,FullCalendar 成功加载所有事件:

"start":"2022-11-02 05:00:00.0","end":"2022-11-02 06:00:00.0"

我猜想 FullCalendar 会以某种方式将这些日期时间转换为其他格式(上面的格式,包括工作日、带字母的月份、GMT、时区等),这些格式取自我的本地设置。这就是为什么我宁愿使用 FullCalendar 格式化程序而不是 javascript 格式化程序,这样我的应用程序就可以在具有不同区域设置的计算机上运行。

无论如何,我已经为此苦苦挣扎了几个小时,所以我们将非常感谢任何帮助。

完整日历版本:v5.11.3

javascript datetime fullcalendar fullcalendar-5
2个回答
1
投票

我通过使用 Event 的 startStrendStr 属性来“解决”它。

(我想这就是他们的目的)

无论如何谢谢。


0
投票

您是如何使用 startStr 和 endStr 属性解决此问题的?你能分享你的代码修复吗?

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