diff --git a/src/addons/calendar/pages/edit-event/edit-event.page.ts b/src/addons/calendar/pages/edit-event/edit-event.page.ts index 616c65e37..fa21d737d 100644 --- a/src/addons/calendar/pages/edit-event/edit-event.page.ts +++ b/src/addons/calendar/pages/edit-event/edit-event.page.ts @@ -450,8 +450,8 @@ export class AddonCalendarEditEventPage implements OnInit, OnDestroy, CanLeave { async submit(): Promise { // Validate data. const formData = this.form.value; - const timeStartDate = CoreTimeUtils.convertToTimestamp(formData.timestart); - const timeUntilDate = CoreTimeUtils.convertToTimestamp(formData.timedurationuntil); + const timeStartDate = CoreTimeUtils.convertToTimestamp(formData.timestart, true); + const timeUntilDate = CoreTimeUtils.convertToTimestamp(formData.timedurationuntil, true); const timeDurationMinutes = parseInt(formData.timedurationminutes || '', 10); let error: string | undefined; diff --git a/src/core/services/utils/time.ts b/src/core/services/utils/time.ts index c9202cb72..b0c8ae3a2 100644 --- a/src/core/services/utils/time.ts +++ b/src/core/services/utils/time.ts @@ -328,15 +328,23 @@ export class CoreTimeUtilsProvider { /** * Convert a text into user timezone timestamp. * + * @todo The `applyOffset` argument is only used as a workaround, it should be removed once + * MOBILE-3784 is resolved. + * * @param date To convert to timestamp. + * @param applyOffset Whether to apply offset to date or not. * @return Converted timestamp. */ - convertToTimestamp(date: string): number { - if (typeof date == 'string' && date.slice(-1) == 'Z') { - return moment(date).unix() - (moment().utcOffset() * 60); + convertToTimestamp(date: string, applyOffset?: boolean): number { + const timestamp = moment(date).unix(); + + if (typeof applyOffset !== 'undefined') { + return applyOffset ? timestamp - moment().utcOffset() * 60 : timestamp; } - return moment(date).unix(); + return typeof date == 'string' && date.slice(-1) == 'Z' + ? timestamp - moment().utcOffset() * 60 + : timestamp; } /**