Added compatibility for single digit hours in 24 hours format

This commit is contained in:
lindhork 2021-02-11 03:54:12 +01:00
parent 5d8f5beb2a
commit 650519683c
2 changed files with 16 additions and 10 deletions

View file

@ -1,3 +1,8 @@
// Helper function to replace HH with H for 24 hours format, because H allows also single-digit hours
function adjustedTimeFormat() {
return moment.localeData().longDateFormat('LT').replace(/HH/i, 'H');
}
// Edit received, start, due & end dates
BlazeComponent.extendComponent({
template() {
@ -59,7 +64,7 @@ BlazeComponent.extendComponent({
},
'keyup .js-time-field'() {
// parse for localized time format in strict mode
const dateMoment = moment(this.find('#time').value, 'LT', true);
const dateMoment = moment(this.find('#time').value, adjustedTimeFormat(), true);
if (dateMoment.isValid()) {
this.error.set('');
}
@ -71,15 +76,13 @@ BlazeComponent.extendComponent({
const time =
evt.target.time.value ||
moment(new Date().setHours(12, 0, 0)).format('LT');
const dateString = `${evt.target.date.value} ${time}`;
const newDate = moment(dateString, 'L LT', true);
const newDate = moment(dateString, 'L ' + adjustedTimeFormat(), true);
if (newDate.isValid()) {
this._storeDate(newDate.toDate());
Popup.close();
} else {
this.error.set('invalid-date');
evt.target.date.focus();
this.error.set('invalid');
}
},
'click .js-delete-date'(evt) {

View file

@ -1,3 +1,8 @@
// Helper function to replace HH with H for 24 hours format, because H allows also single-digit hours
function adjustedTimeFormat() {
return moment.localeData().longDateFormat('LT').replace(/HH/i, 'H');
}
DatePicker = BlazeComponent.extendComponent({
template() {
return 'datepicker';
@ -77,7 +82,7 @@ DatePicker = BlazeComponent.extendComponent({
},
'keyup .js-time-field'() {
// parse for localized time format in strict mode
const dateMoment = moment(this.find('#time').value, 'LT', true);
const dateMoment = moment(this.find('#time').value, adjustedTimeFormat(), true);
if (dateMoment.isValid()) {
this.error.set('');
}
@ -89,15 +94,13 @@ DatePicker = BlazeComponent.extendComponent({
const time =
evt.target.time.value ||
moment(new Date().setHours(12, 0, 0)).format('LT');
const dateString = `${evt.target.date.value} ${time}`;
const newDate = moment(dateString, 'L LT', true);
const newDate = moment(dateString, 'L ' + adjustedTimeFormat(), true);
if (newDate.isValid()) {
this._storeDate(newDate.toDate());
Popup.close();
} else {
this.error.set('invalid-date');
evt.target.date.focus();
this.error.set('invalid');
}
},
'click .js-delete-date'(evt) {