Я использую скрипт с открытым исходным кодом , который добавляет событие во внешний календарь.Я также использую момент, чтобы изменить формат времени.
this.addToCalendar = createCalendar({
options: {
class: 'addtocal-btn',
id: 'event-' + this.item.id // You need to pass an ID. If you don't, one will be generated for you.
},
data: {
title: this.item.title, // Event title
start: new Date(this.calendarDate(this.item.start_date) + ' ' + moment(this.item.start_time, ["h:mm A"]).format("HH:mm")), // Event start date
end: new Date(this.calendarDate(this.item.end_date) + ' ' + moment(this.item.end_time, ["h:mm A"]).format("HH:mm")), // You can also choose to set an end time.
address: this.item.location,
description: this.item.description,
timezone: 'America/Detroit'
}
});
К сожалению, дата и время разделены в базе данных, и поэтому я должен объединить две функции Date ().
Примером start_date будет '2018-10-15 00:00:00', тогда как примером start_time будет '10: 00 pm'. Поэтому я должен запустить start_date через функцию и start_time через моментчтобы получить правильное форматирование.
// If 2018-10-15 00:00:00 is passed, returns 2018-10-15
calendarDate: function (value) {
var arr = value.split(' ');
return arr[0]
},
В любом случае проблема заключается в в том, что, хотя это прекрасно работает в настольных браузерах, оно НЕ работает в мобильных браузерах.И так как я не могу провести какое-либо тестирование непосредственно на мобильном устройстве, я не могу диагностировать проблему напрямую.
Мне удалось сузить проблему до объединения даты и времени, ноЯ не знаю, почему браузеры настольных компьютеров принимают это, а мобильные браузеры - нет (к вашему сведению, я пробовал это в Safari и Chrome на iPhone6s Plus)