I have got a config for php dateformats
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i',
But for the datetimepicker i need moment.js formatting (http://momentjs.com/docs/#/displaying/format/) that will look like so:
DD.MM.YYYY
HH:mm
DD.MM.YYYY HH:mm
This would be no problem for me to replace d
with DD
and m
with MM
but i was wondering if nobody before has built something to do this.
So i wrote a litte helper function to convert the php dateformats into the format needed for moment.js
function convertPHPToMomentFormat($format)
{
$replacements = [
'd' => 'DD',
'D' => 'ddd',
'j' => 'D',
'l' => 'dddd',
'N' => 'E',
'S' => 'o',
'w' => 'e',
'z' => 'DDD',
'W' => 'W',
'F' => 'MMMM',
'm' => 'MM',
'M' => 'MMM',
'n' => 'M',
't' => '', // no equivalent
'L' => '', // no equivalent
'o' => 'YYYY',
'Y' => 'YYYY',
'y' => 'YY',
'a' => 'a',
'A' => 'A',
'B' => '', // no equivalent
'g' => 'h',
'G' => 'H',
'h' => 'hh',
'H' => 'HH',
'i' => 'mm',
's' => 'ss',
'u' => 'SSS',
'e' => 'zz', // deprecated since version 1.6.0 of moment.js
'I' => '', // no equivalent
'O' => '', // no equivalent
'P' => '', // no equivalent
'T' => '', // no equivalent
'Z' => '', // no equivalent
'c' => '', // no equivalent
'r' => '', // no equivalent
'U' => 'X',
];
$momentFormat = strtr($format, $replacements);
return $momentFormat;
}