},
// Hindi notation for meridiems are quite fuzzy in practice. While there exists
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
- meridiemParse: /रात|सुबह|दोपहर|शाम|रात/,
- isPM: function (input) {
- // TODO: This is incorrect (look at cutoffs). We need a better isPM interface.
- return /^(दोपहर|शाम|रात)$/.test(input);
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सुबह') {
+ return hour;
+ } else if (meridiem === 'दोपहर') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'शाम') {
+ return hour + 12;
+ }
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
LLLL : 'dddd, D MMMM YYYY [pukul] LT'
},
meridiemParse: /pagi|siang|sore|malam/,
- isPM: function (input) {
- // TODO: This is incorrect (look at cutoffs).
- return /^(siang|sore|malam)$/.test(input);
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'siang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
+ return hour + 12;
+ }
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return symbolMap[match];
});
},
- meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी|रात्री/,
- isPM : function (input) {
- // TODO: This is wrong.
- return /^(दुपारी|सायंकाळी|रात्री)$/.test(input);
+ meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात्री') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सकाळी') {
+ return hour;
+ } else if (meridiem === 'दुपारी') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'सायंकाळी') {
+ return hour + 12;
+ }
},
meridiem: function (hour, minute, isLower)
{
LLLL : 'dddd, D MMMM YYYY [pukul] LT'
},
meridiemParse: /pagi|tengahari|petang|malam/,
- isPM: function (input) {
- // TODO: This is wrong.
- return /^(tengahari|petang|malam)$/.test(input);
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
});
},
meridiemParse: /राती|बिहान|दिउँसो|बेलुका|साँझ|राती/,
- isPM : function (input) {
- // TODO: This is wrong.
- return /^(दिउँसो|बेलुका|साँझ|राती)$/.test(input);
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राती') {
+ return hour < 3 ? hour : hour + 12;
+ } else if (meridiem === 'बिहान') {
+ return hour;
+ } else if (meridiem === 'दिउँसो') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'बेलुका' || meridiem === 'साँझ') {
+ return hour + 12;
+ }
},
meridiem : function (hour, minute, isLower) {
if (hour < 3) {
// refer http://ta.wikipedia.org/s/1er1
-
- // TODO: This is pretty wrong (when hour is equal to 6 10, 14, 18, 20,
- // 24 (0). Also it doesn't split at 12 (noon).
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
meridiem : function (hour, minute, isLower) {
- if (hour >= 6 && hour <= 10) {
- return ' காலை';
- } else if (hour >= 10 && hour <= 14) {
- return ' நண்பகல்';
- } else if (hour >= 14 && hour <= 18) {
- return ' எற்பாடு';
- } else if (hour >= 18 && hour <= 20) {
- return ' மாலை';
- } else if (hour >= 20 && hour <= 24) {
- return ' இரவு';
- } else if (hour >= 0 && hour <= 6) {
- return ' வைகறை';
+ if (hour < 2) {
+ return ' யாமம்';
+ } else if (hour < 6) {
+ return ' வைகறை'; // வைகறை
+ } else if (hour < 10) {
+ return ' காலை'; // காலை
+ } else if (hour < 14) {
+ return ' நண்பகல்'; // நண்பகல்
+ } else if (hour < 18) {
+ return ' எற்பாடு'; // எற்பாடு
+ } else if (hour < 22) {
+ return ' மாலை'; // மாலை
+ } else {
+ return ' யாமம்';
+ }
+ },
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'யாமம்') {
+ return hour < 2 ? hour : hour + 12;
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
+ return hour;
+ } else if (meridiem === 'நண்பகல்') {
+ return hour >= 10 ? hour : hour + 12;
+ } else {
+ return hour + 12;
}
},
week : {
llll : 'YYYY年MMMD日ddddLT'
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
- isPM: function (input) {
- // TODO: This is wrong.
- return /^(中午|下午|晚上)$/.test(input);
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' ||
+ meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ } else {
+ // '中午'
+ return hour >= 11 ? hour : hour + 12;
+ }
},
meridiem : function (hour, minute, isLower) {
var hm = hour * 100 + minute;
llll : 'YYYY年MMMD日ddddLT'
},
meridiemParse: /早上|上午|中午|下午|晚上/,
- isPM: function (input) {
- // TODO: This is wrong.
- return /^(中午|下午|晚上)$/.test(input);
+ meridiemHour : function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
},
meridiem : function (hour, minute, isLower) {
var hm = hour * 100 + minute;
test.done();
},
- 'meridiem' : function (test) {
+ 'meridiem invariant' : function (test) {
test.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'रात', 'before dawn');
test.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'सुबह', 'morning');
test.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दोपहर', 'during day');
test.done();
},
+ 'meridiem' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'lenient ordinal parsing of number' : function (test) {
var i, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
},
'meridiem' : function (test) {
+ test.equal(moment([2011, 2, 23, 0, 30]).format('a'), ' யாமம்', '(after) midnight');
test.equal(moment([2011, 2, 23, 2, 30]).format('a'), ' வைகறை', 'before dawn');
test.equal(moment([2011, 2, 23, 9, 30]).format('a'), ' காலை', 'morning');
- test.equal(moment([2011, 2, 23, 14, 30]).format('a'), ' நணà¯\8dபà®\95லà¯\8d', 'during day');
+ test.equal(moment([2011, 2, 23, 14, 30]).format('a'), ' à®\8eà®±à¯\8dபாà®\9fà¯\81', 'during day');
test.equal(moment([2011, 2, 23, 17, 30]).format('a'), ' எற்பாடு', 'evening');
test.equal(moment([2011, 2, 23, 19, 30]).format('a'), ' மாலை', 'late evening');
- test.equal(moment([2011, 2, 23, 21, 20]).format('a'), ' இரவு', 'night');
+ test.equal(moment([2011, 2, 23, 23, 30]).format('a'), ' யாமம்', '(before) midnight');
test.done();
},
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {
test.done();
},
+ 'meridiem invariant' : function (test) {
+ var h, m, t1, t2;
+ for (h = 0; h < 24; ++h) {
+ for (m = 0; m < 60; m += 15) {
+ t1 = moment.utc([2000, 0, 1, h, m]);
+ t2 = moment(t1.format('A h:mm'), 'A h:mm');
+ test.equal(t2.format('HH:mm'), t1.format('HH:mm'),
+ 'meridiem at ' + t1.format('HH:mm'));
+ }
+ }
+
+ test.done();
+ },
+
'strict ordinal parsing' : function (test) {
var i, ordinalStr, testMoment;
for (i = 1; i <= 31; ++i) {