formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
+ function meridiemFixWrap(locale, hour, meridiem) {
+ var isPm;
+
+ if (meridiem == null) {
+ // nothing to do
+ return hour;
+ }
+ if (locale.meridiemHour != null) {
+ return locale.meridiemHour(hour, meridiem);
+ } else if (locale.isPM != null) {
+ // Fallback
+ isPm = locale.isPM(meridiem);
+ if (isPm && hour < 12) {
+ hour += 12;
+ }
+ if (!isPm && hour === 12) {
+ hour = 0;
+ }
+ return hour;
+ } else {
+ // thie is not supposed to happen
+ return hour;
+ }
+ }
+
/************************************
Constructors
************************************/
}
},
+
_calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
// AM / PM
case 'a' : // fall through to A
case 'A' :
- config._isPm = config._locale.isPM(input);
+ config._meridiem = input;
+ // config._isPm = config._locale.isPM(input);
break;
// HOUR
case 'h' : // fall through to hh
if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
config._pf.bigHour = undefined;
}
- // handle am pm
- if (config._isPm && config._a[HOUR] < 12) {
- config._a[HOUR] += 12;
- }
- // if is 12 am, change hours to 0
- if (config._isPm === false && config._a[HOUR] === 12) {
- config._a[HOUR] = 0;
- }
+ // handle meridiem
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR],
+ config._meridiem);
dateFromConfig(config);
checkOverflow(config);
}