In calendar.inc we define the variable "flatpickr_timeformat_string" using this string: "h:i K" This results in times which don't include a leading zero (https://flatpickr.js.org/formatting/), a format which doesn't seem to be expected by the Perl script. It should be "G" To reproduce: - Set the TimeFormat system preference to "12 hour" - Find an item which is checked out and renewable. - Go to Circulation -> Renew and use the date picker to select a time < 12, e.g. 9:00 AM - Submit the barcode for renewal. - Check the patron's account to see the due date: Instead of being due on your selected date at 9:00AM it will be due on your selected date at 12:00AM.
Created attachment 124414 [details] [review] Bug 28938: Correct Flatpickr's default 12hr time formatting This patch corrects Flatpickr's default 12 time formatting so that it uses the formatting token "G" ("Hours, 2 digits with leading zeros") instead of "h" ("Hours, 2 digits without leading zeros"). This will prevent incorrect times from being saved when the submitted time is before 12. - To test, apply the patch go to Administration -> System preferences. - Set the TimeFormat system preference to "12 hour" - Find an item which is checked out and renewable. - Go to Circulation -> Renew and use the date picker to select a time < 12, e.g. 9:00 AM - Submit the barcode for renewal. - Check the patron's account to see the due date of the renewed item: It should match the date and time you selected.
Created attachment 124417 [details] [review] Bug 28938: Correct Flatpickr's default 12hr time formatting This patch corrects Flatpickr's default 12 time formatting so that it uses the formatting token "G" ("Hours, 2 digits with leading zeros") instead of "h" ("Hours, 2 digits without leading zeros"). This will prevent incorrect times from being saved when the submitted time is before 12. - To test, apply the patch go to Administration -> System preferences. - Set the TimeFormat system preference to "12 hour" - Find an item which is checked out and renewable. - Go to Circulation -> Renew and use the date picker to select a time < 12, e.g. 9:00 AM - Submit the barcode for renewal. - Check the patron's account to see the due date of the renewed item: It should match the date and time you selected. Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed to master for 21.11, thanks to everybody involved!