|
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