MDL-74379 language: injecting am/pm in date string

patching the date_format_string() function in moodlelib to add am/pm for languages that don't suuport it.
This commit is contained in:
Aya Saad 2022-05-29 12:04:48 +02:00
parent ceb41588d2
commit 8be0dfc928
2 changed files with 19 additions and 0 deletions

View File

@ -23,6 +23,8 @@
*/
$string['alphabet'] = 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z';
$string['am'] = 'am';
$string['amcaps'] = 'AM';
$string['backupnameformat'] = '%Y%m%d-%H%M';
$string['dateintervaldayshoursmins'] = '%ad %hh %im'; // See https://www.php.net/manual/en/dateinterval.format.php for format.
$string['decsep'] = '.';
@ -37,6 +39,8 @@ $string['localewin'] = 'English_Australia.1252';
$string['localewincharset'] = '';
$string['oldcharset'] = 'ISO-8859-1';
$string['parentlanguage'] = '';
$string['pm'] = 'pm';
$string['pmcaps'] = 'PM';
$string['strftimedate'] = '%d %B %Y';
$string['strftimedatemonthabbr'] = '%d %b %Y';
$string['strftimedatefullshort'] = '%d/%m/%y';

View File

@ -2356,6 +2356,21 @@ function date_format_string($date, $format, $tz = 99) {
}
date_default_timezone_set(core_date::get_user_timezone($tz));
$datearray = getdate($date);
if (nl_langinfo(AM_STR) == nl_langinfo(PM_STR)) {
$format = str_replace([
'%P',
'%p',
], [
$datearray['hours'] < 12 ? get_string('am', 'langconfig') : get_string('pm', 'langconfig'),
$datearray['hours'] < 12 ? get_string('amcaps', 'langconfig') : get_string('pmcaps', 'langconfig'),
],
$format);
}
$datestring = strftime($format, $date);
core_date::set_default_server_timezone();