MOBILE-2808 datetime: Do not use am/pm in datetime

main
Dani Palou 2019-07-17 12:00:32 +02:00
parent b0477ab1d3
commit 11f34887d0
4 changed files with 32 additions and 9 deletions

View File

@ -72,9 +72,9 @@ export class AddonCalendarEventPage {
this.defaultTime = defaultTime * 60;
});
// Calculate format to use. ion-datetime doesn't support escaping characters ([]), so we remove them.
this.notificationFormat = this.timeUtils.convertPHPToMoment(this.translate.instant('core.strftimedatetime'))
.replace(/[\[\]]/g, '');
// Calculate format to use.
this.notificationFormat = this.timeUtils.fixFormatForDatetime(this.timeUtils.convertPHPToMoment(
this.translate.instant('core.strftimedatetime')));
}
}

View File

@ -42,9 +42,9 @@ export class AddonModDataFieldDateComponent extends AddonModDataFieldPluginCompo
let val;
// Calculate format to use. ion-datetime doesn't support escaping characters ([]), so we remove them.
this.format = this.timeUtils.convertPHPToMoment(this.translate.instant('core.strftimedate'))
.replace(/[\[\]]/g, '');
// Calculate format to use.
this.format = this.timeUtils.fixFormatForDatetime(this.timeUtils.convertPHPToMoment(
this.translate.instant('core.strftimedate')));
if (this.mode == 'search') {
this.addControl('f_' + this.field.id + '_z');

View File

@ -47,9 +47,9 @@ export class AddonUserProfileFieldDatetimeComponent implements OnInit {
// Check if it's only date or it has time too.
const hasTime = this.utils.isTrueOrOne(field.param3);
// Calculate format to use. ion-datetime doesn't support escaping characters ([]), so we remove them.
field.format = this.timeUtils.convertPHPToMoment(this.translate.instant('core.' +
(hasTime ? 'strftimedatetime' : 'strftimedate'))).replace(/[\[\]]/g, '');
// Calculate format to use.
field.format = this.timeUtils.fixFormatForDatetime(this.timeUtils.convertPHPToMoment(
this.translate.instant('core.' + (hasTime ? 'strftimedatetime' : 'strftimedate'))));
// Check min value.
if (field.param1) {

View File

@ -118,6 +118,29 @@ export class CoreTimeUtilsProvider {
return converted;
}
/**
* Fix format to use in an ion-datetime.
*
* @param {string} format Format to use.
* @return {string} Fixed format.
*/
fixFormatForDatetime(format: string): string {
if (!format) {
return '';
}
// The component ion-datetime doesn't support escaping characters ([]), so we remove them.
let fixed = format.replace(/[\[\]]/g, '');
if (fixed.indexOf('A') != -1) {
// Do not use am/pm format because there is a bug in ion-datetime.
fixed = fixed.replace(/ ?A/g, '');
fixed = fixed.replace(/h/g, 'H');
}
return fixed;
}
/**
* Returns hours, minutes and seconds in a human readable format
*