|
45 | 45 | ampm: false,
|
46 | 46 | amNames: ['AM', 'A'],
|
47 | 47 | pmNames: ['PM', 'P'],
|
48 |
| - timeFormat: 'hh:mm tt', |
| 48 | + timeFormat: 'HH:mm', |
49 | 49 | timeSuffix: '',
|
50 | 50 | timeOnlyTitle: 'Choose Time',
|
51 | 51 | timeText: 'Time',
|
|
363 | 363 | if(litem == 'hour'){
|
364 | 364 | for (var h = o[litem+'Min']; h <= max[litem]; h += parseInt(o[litem+'Grid'], 10)) {
|
365 | 365 | gridSize[litem]++;
|
366 |
| - var tmph = (o.ampm && h > 12) ? h - 12 : h; |
367 |
| - if (tmph < 10) { |
368 |
| - tmph = '0' + tmph; |
369 |
| - } |
370 |
| - if (o.ampm) { |
371 |
| - if (h === 0) { |
372 |
| - tmph = 12 + 'a'; |
373 |
| - } else { |
374 |
| - if (h < 12) { |
375 |
| - tmph += 'a'; |
376 |
| - } else { |
377 |
| - tmph += 'p'; |
378 |
| - } |
379 |
| - } |
380 |
| - } |
| 366 | + var tmph = $.datepicker.formatTime(_useAmpm(o.pickerTimeFormat || o.timeFormat)? 'hht':'HH', {hour:h}, o); |
381 | 367 | html += '<td data-for="'+litem+'">' + tmph + '</td>';
|
382 | 368 | }
|
383 | 369 | }
|
|
426 | 412 | }).find("td").click(function(e){
|
427 | 413 | var $t = $(this),
|
428 | 414 | h = $t.html(),
|
| 415 | + n = parseInt(h.replace(/[^0-9]/g),10), |
| 416 | + ap = h.replace(/[^apm]/ig), |
429 | 417 | f = $t.data('for'); // loses scope, so we use data-for
|
430 | 418 |
|
431 |
| - if (f == 'hour' && o.ampm) { |
432 |
| - var ap = h.substring(2).toLowerCase(), |
433 |
| - aph = parseInt(h.substring(0, 2), 10); |
434 |
| - if (ap == 'a') { |
435 |
| - if (aph == 12) { |
436 |
| - h = 0; |
437 |
| - } else { |
438 |
| - h = aph; |
| 419 | + if(f == 'hour'){ |
| 420 | + if(ap.indexOf('p') !== -1 && n < 12){ |
| 421 | + n += 12; |
| 422 | + } |
| 423 | + else{ |
| 424 | + if(ap.indexOf('a') !== -1 && n === 12){ |
| 425 | + n = 0; |
439 | 426 | }
|
440 |
| - } else if (aph == 12) { |
441 |
| - h = 12; |
442 |
| - } else { |
443 |
| - h = aph + 12; |
444 | 427 | }
|
445 | 428 | }
|
446 |
| - tp_inst.control.value(tp_inst, tp_inst[f+'_slider'], litem, parseInt(h,10)); |
| 429 | + |
| 430 | + tp_inst.control.value(tp_inst, tp_inst[f+'_slider'], litem, n); |
447 | 431 |
|
448 | 432 | tp_inst._onTimeChange();
|
449 | 433 | tp_inst._onSelectHandler();
|
|
802 | 786 | this.$input.val(formattedDateTime);
|
803 | 787 | var altFormattedDateTime = '',
|
804 | 788 | altSeparator = this._defaults.altSeparator ? this._defaults.altSeparator : this._defaults.separator,
|
805 |
| - altTimeSuffix = this._defaults.altTimeSuffix ? this._defaults.altTimeSuffix : this._defaults.timeSuffix, |
806 |
| - altOpts = $.extend({}, this._defaults, { ampm: (this._defaults.altAmpm !== null ? this._defaults.altAmpm : this._defaults.ampm) }); |
| 789 | + altTimeSuffix = this._defaults.altTimeSuffix ? this._defaults.altTimeSuffix : this._defaults.timeSuffix; |
807 | 790 |
|
808 | 791 | if (this._defaults.altFormat) altFormattedDateTime = $.datepicker.formatDate(this._defaults.altFormat, (dt === null ? new Date() : dt), formatCfg);
|
809 | 792 | else altFormattedDateTime = this.formattedDate;
|
810 | 793 | if (altFormattedDateTime) altFormattedDateTime += altSeparator;
|
811 |
| - if (this._defaults.altTimeFormat) altFormattedDateTime += $.datepicker.formatTime(this._defaults.altTimeFormat, this, altOpts) + altTimeSuffix; |
| 794 | + if (this._defaults.altTimeFormat) altFormattedDateTime += $.datepicker.formatTime(this._defaults.altTimeFormat, this, this._defaults) + altTimeSuffix; |
812 | 795 | else altFormattedDateTime += this.formattedTime + altTimeSuffix;
|
813 | 796 | this.$altInput.val(altFormattedDateTime);
|
814 | 797 | } else {
|
|
902 | 885 |
|
903 | 886 | for(var i=min; i<=max; i+=step){
|
904 | 887 | sel += '<option value="'+ i +'"'+ (i==val? ' selected':'') +'>';
|
905 |
| - if(unit == 'hour' && tp_inst._defaults.ampm){ |
906 |
| - m = i%12; |
907 |
| - if(i === 0 || i === 12) sel += '12'; |
908 |
| - else if(m < 10) sel += '0'+ m.toString(); |
909 |
| - else sel += m; |
910 |
| - sel += ' '+ ((i < 12)? tp_inst._defaults.amNames[0] : tp_inst._defaults.pmNames[0])[ul](); |
911 |
| - } |
| 888 | + if(unit == 'hour' && _useAmpm(tp_inst._defaults.pickerTimeFormat || tp_inst._defaults.timeFormat)) |
| 889 | + sel += $.datepicker.formatTime("hh TT", {hour:i}, tp_inst._defaults); |
912 | 890 | else if(unit == 'millisec' || i >= 10) sel += i;
|
913 | 891 | else sel += '0'+ i.toString();
|
914 | 892 | sel += '</option>';
|
|
1141 | 1119 | return false;
|
1142 | 1120 | };
|
1143 | 1121 |
|
1144 |
| - _convert24to12 = function(hour) { |
1145 |
| - if (hour > 12) { |
1146 |
| - hour = hour - 12; |
1147 |
| - } |
1148 |
| - |
1149 |
| - if (hour == 0) { |
1150 |
| - hour = 12; |
1151 |
| - } |
1152 |
| - |
1153 |
| - if (hour < 10) { |
1154 |
| - hour = "0" + hour; |
1155 |
| - } |
1156 |
| - |
1157 |
| - return String(hour); |
1158 |
| - }; |
1159 |
| - |
1160 | 1122 | /*
|
1161 | 1123 | * Public utility to format the time
|
1162 | 1124 | * format = string format of the time
|
|
1177 | 1139 | var tmptime = format,
|
1178 | 1140 | ampmName = options.amNames[0],
|
1179 | 1141 | hour = parseInt(time.hour, 10);
|
1180 |
| - |
| 1142 | + |
1181 | 1143 | if (hour > 11) {
|
1182 | 1144 | ampmName = options.pmNames[0];
|
1183 | 1145 | }
|
|
1323 | 1285 | altFormattedDateTime = '',
|
1324 | 1286 | altSeparator = tp_inst._defaults.altSeparator ? tp_inst._defaults.altSeparator : tp_inst._defaults.separator,
|
1325 | 1287 | altTimeSuffix = tp_inst._defaults.altTimeSuffix ? tp_inst._defaults.altTimeSuffix : tp_inst._defaults.timeSuffix,
|
1326 |
| - altTimeFormat = tp_inst._defaults.altTimeFormat !== null ? tp_inst._defaults.altTimeFormat : tp_inst._defaults.timeFormat, |
1327 |
| - altAmpm = tp_inst._defaults.altAmpm !== null ? tp_inst._defaults.altAmpm : tp_inst._defaults.ampm, |
1328 |
| - altOpts = $.extend({}, tp_inst._defaults, { ampm: altAmpm }); |
| 1288 | + altTimeFormat = tp_inst._defaults.altTimeFormat !== null ? tp_inst._defaults.altTimeFormat : tp_inst._defaults.timeFormat; |
1329 | 1289 |
|
1330 |
| - altFormattedDateTime += $.datepicker.formatTime(altTimeFormat, tp_inst, altOpts) + altTimeSuffix; |
| 1290 | + altFormattedDateTime += $.datepicker.formatTime(altTimeFormat, tp_inst, tp_inst._defaults) + altTimeSuffix; |
1331 | 1291 | if(!tp_inst._defaults.timeOnly && !tp_inst._defaults.altFieldTimeOnly){
|
1332 | 1292 | if(tp_inst._defaults.altFormat)
|
1333 | 1293 | altFormattedDateTime = $.datepicker.formatDate(tp_inst._defaults.altFormat, (date === null ? new Date() : date), formatCfg) + altSeparator + altFormattedDateTime;
|
|
1646 | 1606 | return target;
|
1647 | 1607 | }
|
1648 | 1608 |
|
| 1609 | + /* |
| 1610 | + * Determine by the time format if should use ampm |
| 1611 | + * Returns true if should use ampm, false if not |
| 1612 | + */ |
| 1613 | + var _useAmpm = function(timeFormat){ |
| 1614 | + return (timeFormat.indexOf('t') !== -1 && timeFormat.indexOf('h') !== -1); |
| 1615 | + } |
| 1616 | + |
| 1617 | + /* |
| 1618 | + * Converts 24 hour format into 12 hour |
| 1619 | + * Returns 12 hour with leading 0 |
| 1620 | + */ |
| 1621 | + var _convert24to12 = function(hour) { |
| 1622 | + if (hour > 12) { |
| 1623 | + hour = hour - 12; |
| 1624 | + } |
| 1625 | + |
| 1626 | + if (hour == 0) { |
| 1627 | + hour = 12; |
| 1628 | + } |
| 1629 | + |
| 1630 | + if (hour < 10) { |
| 1631 | + hour = "0" + hour; |
| 1632 | + } |
| 1633 | + |
| 1634 | + return String(hour); |
| 1635 | + }; |
| 1636 | + |
1649 | 1637 | /*
|
1650 | 1638 | * Splits datetime string into date ans time substrings.
|
1651 | 1639 | * Throws exception when date can't be parsed
|
|
0 commit comments