Skip to content
Merged
11 changes: 8 additions & 3 deletions lib/parseValue.js
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,8 @@ export function parseTime (value, options = {}) {
ampm = 'p';
}
else if (tail) {
return null;
if (tail === ':') { parts[2] = '00'; }
else { return null; }
}
}
if (parts) {
Expand All @@ -593,13 +594,17 @@ export function parseTime (value, options = {}) {
// console.error(am);
// valid -- Ertu með far eð
// 00:00 AM - 12:00 AM
if (ampm === 'p') {
hrs += 12;
if (ampm === 'a') {
if (hrs === 12) { hrs = 0; } // midnight
}
else if (ampm === 'p') {
if (hrs !== 12) { hrs += 12; } // afternoon
}
}
const min = +(m || 0) * 1;
const sec = +(s || 0) * 1;
const mss = +(f || 0) * 1;

return {
v: ((hrs * 60 * 60) + (min * 60) + sec + mss) / (60 * 60 * 24),
z: (
Expand Down
8 changes: 4 additions & 4 deletions test/parseValue-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -473,8 +473,8 @@ const tests = [
[ '09:00 AM', 0.375, 'hh:mm AM/PM' ],
[ '10:00 AM', 0.4166666666666667, 'hh:mm AM/PM' ],
[ '11:00 AM', 0.4583333333333333, 'hh:mm AM/PM' ],
[ '12:00 AM', 0.5, 'hh:mm AM/PM' ],
[ '12:59 AM', 0.5409722222222222, 'hh:mm AM/PM' ],
[ '12:00 AM', 0, 'hh:mm AM/PM' ],
[ '12:59 AM', 0.04097222222222222, 'hh:mm AM/PM' ],
[ '12:60 AM', null, null ],
[ '12:61 AM', null, null ],
[ '12:99 AM', null, null ],
Expand Down Expand Up @@ -502,8 +502,8 @@ const tests = [
[ '09:00 PM', 0.875, 'hh:mm AM/PM' ],
[ '10:00 PM', 0.9166666666666666, 'hh:mm AM/PM' ],
[ '11:00 PM', 0.9583333333333334, 'hh:mm AM/PM' ],
[ '12:00 PM', 1, 'hh:mm AM/PM' ],
[ '12:59 PM', 1.0409722222222222, 'hh:mm AM/PM' ],
[ '12:00 PM', 0.5, 'hh:mm AM/PM' ],
[ '12:59 PM', 0.5409722222222222, 'hh:mm AM/PM' ],
[ '12:60 PM', null, null ],
[ '12:61 PM', null, null ],
[ '12:99 PM', null, null ],
Expand Down