我正在使用 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
我通过使用 Event 的 startStr 和 endStr 属性来“解决”它。
(我想这就是他们的目的)
无论如何谢谢。
您是如何使用 startStr 和 endStr 属性解决此问题的?你能分享你的代码修复吗?