xdan-datetimepicker-rails 2.4.1 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47a6d4c3a6ce82e2d44acca0ad9456e6790f63af
|
4
|
+
data.tar.gz: 110d31859d0a6a2a0366b72809c2438d84b93b88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 815011a1b003ff07c91c180431338ebc3f7d74c6d59498aa8406549da2ad6b281751f26542b5feb2152cc64b669e719eedc6d9e8e8f43a48899d4f23bce1ceef
|
7
|
+
data.tar.gz: 29cbc586a8cbf7f027013b30f53a3a83a3fea99700f96706b8e13e94d4888903d119744d1413fa828cadce158309941830ec8f0e0557e64a5e3a5ec705e6f6bd
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/**
|
2
|
-
* @preserve jQuery DateTimePicker plugin v2.4.
|
2
|
+
* @preserve jQuery DateTimePicker plugin v2.4.2
|
3
3
|
* @homepage http://xdsoft.net/jqplugins/datetimepicker/
|
4
4
|
* (c) 2014, Chupurnov Valeriy.
|
5
5
|
*/
|
6
|
-
/*global document,window,jQuery,setTimeout,clearTimeout*/
|
6
|
+
/*global document,window,jQuery,setTimeout,clearTimeout,HighlightedDate,getCurrentValue*/
|
7
7
|
(function ($) {
|
8
8
|
'use strict';
|
9
9
|
var default_options = {
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
|
30
30
|
],
|
31
31
|
dayOfWeek: [
|
32
|
-
"Sen", "Sel", "Rab", "Kam", "Jum", "Sab"
|
32
|
+
"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"
|
33
33
|
]
|
34
34
|
},
|
35
35
|
bg: { // Bulgarian
|
@@ -423,7 +423,15 @@
|
|
423
423
|
dayOfWeek: [
|
424
424
|
"Կի", "Երկ", "Երք", "Չոր", "Հնգ", "Ուրբ", "Շբթ"
|
425
425
|
]
|
426
|
-
}
|
426
|
+
},
|
427
|
+
kg: { // Kyrgyz
|
428
|
+
months: [
|
429
|
+
'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы'
|
430
|
+
],
|
431
|
+
dayOfWeek: [
|
432
|
+
"Жек", "Дүй", "Шей", "Шар", "Бей", "Жум", "Ише"
|
433
|
+
]
|
434
|
+
}
|
427
435
|
},
|
428
436
|
value: '',
|
429
437
|
lang: 'en',
|
@@ -437,6 +445,7 @@
|
|
437
445
|
monthChangeSpinner: true,
|
438
446
|
|
439
447
|
closeOnDateSelect: false,
|
448
|
+
closeOnTimeSelect: true,
|
440
449
|
closeOnWithoutClick: true,
|
441
450
|
closeOnInputClick: true,
|
442
451
|
|
@@ -470,13 +479,15 @@
|
|
470
479
|
withoutCopyright: true,
|
471
480
|
inverseButton: false,
|
472
481
|
hours12: false,
|
473
|
-
next:
|
482
|
+
next: 'xdsoft_next',
|
474
483
|
prev : 'xdsoft_prev',
|
475
484
|
dayOfWeekStart: 0,
|
476
485
|
parentID: 'body',
|
477
486
|
timeHeightInTimePicker: 25,
|
478
487
|
timepickerScrollbar: true,
|
479
488
|
todayButton: true,
|
489
|
+
prevButton: true,
|
490
|
+
nextButton: true,
|
480
491
|
defaultSelect: true,
|
481
492
|
|
482
493
|
scrollMonth: true,
|
@@ -489,17 +500,22 @@
|
|
489
500
|
allowBlank: true,
|
490
501
|
yearStart: 1950,
|
491
502
|
yearEnd: 2050,
|
503
|
+
monthStart: 0,
|
504
|
+
monthEnd: 11,
|
492
505
|
style: '',
|
493
506
|
id: '',
|
494
507
|
fixed: false,
|
495
508
|
roundTime: 'round', // ceil, floor
|
496
509
|
className: '',
|
497
510
|
weekends: [],
|
511
|
+
highlightedDates: [],
|
512
|
+
highlightedPeriods: [],
|
498
513
|
disabledDates : [],
|
499
514
|
yearOffset: 0,
|
500
515
|
beforeShowDay: null,
|
501
516
|
|
502
|
-
enterLikeTab: true
|
517
|
+
enterLikeTab: true,
|
518
|
+
showApplyButton: false
|
503
519
|
};
|
504
520
|
// fix for ie8
|
505
521
|
if (!Array.prototype.indexOf) {
|
@@ -730,6 +746,7 @@
|
|
730
746
|
timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),
|
731
747
|
timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),
|
732
748
|
timebox = $('<div class="xdsoft_time_variant"></div>'),
|
749
|
+
applyButton = $('<button class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),
|
733
750
|
/*scrollbar = $('<div class="xdsoft_scrollbar"></div>'),
|
734
751
|
scroller = $('<div class="xdsoft_scroller"></div>'),*/
|
735
752
|
monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),
|
@@ -791,6 +808,11 @@
|
|
791
808
|
event.preventDefault();
|
792
809
|
})
|
793
810
|
.on('mousedown.xdsoft', '.xdsoft_option', function (event) {
|
811
|
+
|
812
|
+
if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
|
813
|
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
814
|
+
}
|
815
|
+
|
794
816
|
var year = _xdsoft_datetime.currentTime.getFullYear();
|
795
817
|
if (_xdsoft_datetime && _xdsoft_datetime.currentTime) {
|
796
818
|
_xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));
|
@@ -809,6 +831,48 @@
|
|
809
831
|
});
|
810
832
|
|
811
833
|
datetimepicker.setOptions = function (_options) {
|
834
|
+
var highlightedDates = {},
|
835
|
+
getCaretPos = function (input) {
|
836
|
+
try {
|
837
|
+
if (document.selection && document.selection.createRange) {
|
838
|
+
var range = document.selection.createRange();
|
839
|
+
return range.getBookmark().charCodeAt(2) - 2;
|
840
|
+
}
|
841
|
+
if (input.setSelectionRange) {
|
842
|
+
return input.selectionStart;
|
843
|
+
}
|
844
|
+
} catch (e) {
|
845
|
+
return 0;
|
846
|
+
}
|
847
|
+
},
|
848
|
+
setCaretPos = function (node, pos) {
|
849
|
+
node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node;
|
850
|
+
if (!node) {
|
851
|
+
return false;
|
852
|
+
}
|
853
|
+
if (node.createTextRange) {
|
854
|
+
var textRange = node.createTextRange();
|
855
|
+
textRange.collapse(true);
|
856
|
+
textRange.moveEnd('character', pos);
|
857
|
+
textRange.moveStart('character', pos);
|
858
|
+
textRange.select();
|
859
|
+
return true;
|
860
|
+
}
|
861
|
+
if (node.setSelectionRange) {
|
862
|
+
node.setSelectionRange(pos, pos);
|
863
|
+
return true;
|
864
|
+
}
|
865
|
+
return false;
|
866
|
+
},
|
867
|
+
isValidValue = function (mask, value) {
|
868
|
+
var reg = mask
|
869
|
+
.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
|
870
|
+
.replace(/_/g, '{digit+}')
|
871
|
+
.replace(/([0-9]{1})/g, '{digit$1}')
|
872
|
+
.replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
|
873
|
+
.replace(/\{digit[\+]\}/g, '[0-9_]{1}');
|
874
|
+
return (new RegExp(reg)).test(value);
|
875
|
+
};
|
812
876
|
options = $.extend(true, {}, options, _options);
|
813
877
|
|
814
878
|
if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {
|
@@ -819,9 +883,58 @@
|
|
819
883
|
options.weekends = $.extend(true, [], _options.weekends);
|
820
884
|
}
|
821
885
|
|
886
|
+
if (_options.highlightedDates && $.isArray(_options.highlightedDates) && _options.highlightedDates.length) {
|
887
|
+
$.each(_options.highlightedDates, function (index, value) {
|
888
|
+
var splitData = $.map(value.split(','), $.trim),
|
889
|
+
exDesc,
|
890
|
+
hDate = new HighlightedDate(Date.parseDate(splitData[0], options.formatDate), splitData[1], splitData[2]), // date, desc, style
|
891
|
+
keyDate = hDate.date.dateFormat(options.formatDate);
|
892
|
+
if (highlightedDates[keyDate] !== undefined) {
|
893
|
+
exDesc = highlightedDates[keyDate].desc;
|
894
|
+
if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
|
895
|
+
highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
|
896
|
+
}
|
897
|
+
} else {
|
898
|
+
highlightedDates[keyDate] = hDate;
|
899
|
+
}
|
900
|
+
});
|
901
|
+
|
902
|
+
options.highlightedDates = $.extend(true, [], highlightedDates);
|
903
|
+
}
|
904
|
+
|
905
|
+
if (_options.highlightedPeriods && $.isArray(_options.highlightedPeriods) && _options.highlightedPeriods.length) {
|
906
|
+
highlightedDates = $.extend(true, [], options.highlightedDates);
|
907
|
+
$.each(_options.highlightedPeriods, function (index, value) {
|
908
|
+
var splitData = $.map(value.split(','), $.trim),
|
909
|
+
dateTest = Date.parseDate(splitData[0], options.formatDate), // start date
|
910
|
+
dateEnd = Date.parseDate(splitData[1], options.formatDate),
|
911
|
+
desc = splitData[2],
|
912
|
+
hDate,
|
913
|
+
keyDate,
|
914
|
+
exDesc,
|
915
|
+
style = splitData[3];
|
916
|
+
|
917
|
+
while (dateTest <= dateEnd) {
|
918
|
+
hDate = new HighlightedDate(dateTest, desc, style);
|
919
|
+
keyDate = dateTest.dateFormat(options.formatDate);
|
920
|
+
dateTest.setDate(dateTest.getDate() + 1);
|
921
|
+
if (highlightedDates[keyDate] !== undefined) {
|
922
|
+
exDesc = highlightedDates[keyDate].desc;
|
923
|
+
if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
|
924
|
+
highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
|
925
|
+
}
|
926
|
+
} else {
|
927
|
+
highlightedDates[keyDate] = hDate;
|
928
|
+
}
|
929
|
+
}
|
930
|
+
});
|
931
|
+
|
932
|
+
options.highlightedDates = $.extend(true, [], highlightedDates);
|
933
|
+
}
|
934
|
+
|
822
935
|
if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {
|
823
|
-
|
824
|
-
|
936
|
+
options.disabledDates = $.extend(true, [], _options.disabledDates);
|
937
|
+
}
|
825
938
|
|
826
939
|
if ((options.open || options.opened) && (!options.inline)) {
|
827
940
|
input.trigger('open.xdsoft');
|
@@ -851,10 +964,10 @@
|
|
851
964
|
}
|
852
965
|
|
853
966
|
if (options.value) {
|
967
|
+
_xdsoft_datetime.setCurrentTime(options.value);
|
854
968
|
if (input && input.val) {
|
855
|
-
input.val(
|
969
|
+
input.val(_xdsoft_datetime.str);
|
856
970
|
}
|
857
|
-
_xdsoft_datetime.setCurrentTime(options.value);
|
858
971
|
}
|
859
972
|
|
860
973
|
if (isNaN(options.dayOfWeekStart)) {
|
@@ -875,53 +988,21 @@
|
|
875
988
|
options.maxDate = _xdsoft_datetime.strToDateTime(options.maxDate).dateFormat(options.formatDate);
|
876
989
|
}
|
877
990
|
|
991
|
+
applyButton.toggle(options.showApplyButton);
|
992
|
+
|
878
993
|
mounth_picker
|
879
994
|
.find('.xdsoft_today_button')
|
880
995
|
.css('visibility', !options.todayButton ? 'hidden' : 'visible');
|
881
996
|
|
997
|
+
mounth_picker
|
998
|
+
.find('.' + options.prev)
|
999
|
+
.css('visibility', !options.prevButton ? 'hidden' : 'visible');
|
1000
|
+
|
1001
|
+
mounth_picker
|
1002
|
+
.find('.' + options.next)
|
1003
|
+
.css('visibility', !options.nextButton ? 'hidden' : 'visible');
|
1004
|
+
|
882
1005
|
if (options.mask) {
|
883
|
-
var e,
|
884
|
-
getCaretPos = function (input) {
|
885
|
-
try {
|
886
|
-
if (document.selection && document.selection.createRange) {
|
887
|
-
var range = document.selection.createRange();
|
888
|
-
return range.getBookmark().charCodeAt(2) - 2;
|
889
|
-
}
|
890
|
-
if (input.setSelectionRange) {
|
891
|
-
return input.selectionStart;
|
892
|
-
}
|
893
|
-
} catch (e) {
|
894
|
-
return 0;
|
895
|
-
}
|
896
|
-
},
|
897
|
-
setCaretPos = function (node, pos) {
|
898
|
-
node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node;
|
899
|
-
if (!node) {
|
900
|
-
return false;
|
901
|
-
}
|
902
|
-
if (node.createTextRange) {
|
903
|
-
var textRange = node.createTextRange();
|
904
|
-
textRange.collapse(true);
|
905
|
-
textRange.moveEnd('character', pos);
|
906
|
-
textRange.moveStart('character', pos);
|
907
|
-
textRange.select();
|
908
|
-
return true;
|
909
|
-
}
|
910
|
-
if (node.setSelectionRange) {
|
911
|
-
node.setSelectionRange(pos, pos);
|
912
|
-
return true;
|
913
|
-
}
|
914
|
-
return false;
|
915
|
-
},
|
916
|
-
isValidValue = function (mask, value) {
|
917
|
-
var reg = mask
|
918
|
-
.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
|
919
|
-
.replace(/_/g, '{digit+}')
|
920
|
-
.replace(/([0-9]{1})/g, '{digit$1}')
|
921
|
-
.replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
|
922
|
-
.replace(/\{digit[\+]\}/g, '[0-9_]{1}');
|
923
|
-
return (new RegExp(reg)).test(value);
|
924
|
-
};
|
925
1006
|
input.off('keydown.xdsoft');
|
926
1007
|
|
927
1008
|
if (options.mask === true) {
|
@@ -997,28 +1078,28 @@
|
|
997
1078
|
input
|
998
1079
|
.off('blur.xdsoft')
|
999
1080
|
.on('blur.xdsoft', function () {
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1081
|
+
if (options.allowBlank && !$.trim($(this).val()).length) {
|
1082
|
+
$(this).val(null);
|
1083
|
+
datetimepicker.data('xdsoft_datetime').empty();
|
1084
|
+
} else if (!Date.parseDate($(this).val(), options.format)) {
|
1085
|
+
var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
|
1086
|
+
splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
|
1087
|
+
|
1088
|
+
// parse the numbers as 0312 => 03:12
|
1089
|
+
if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
|
1090
|
+
$(this).val([splittedHours, splittedMinutes].map(function (item) {
|
1091
|
+
return item > 9 ? item : '0' + item;
|
1092
|
+
}).join(':'));
|
1093
|
+
} else {
|
1094
|
+
$(this).val((_xdsoft_datetime.now()).dateFormat(options.format));
|
1095
|
+
}
|
1096
|
+
|
1097
|
+
datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
|
1098
|
+
} else {
|
1099
|
+
datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
|
1100
|
+
}
|
1101
|
+
|
1102
|
+
datetimepicker.trigger('changedatetime.xdsoft');
|
1022
1103
|
});
|
1023
1104
|
}
|
1024
1105
|
options.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;
|
@@ -1057,7 +1138,8 @@
|
|
1057
1138
|
|
1058
1139
|
datepicker
|
1059
1140
|
.append(mounth_picker)
|
1060
|
-
.append(calendar)
|
1141
|
+
.append(calendar)
|
1142
|
+
.append(applyButton);
|
1061
1143
|
|
1062
1144
|
$(options.parentID)
|
1063
1145
|
.append(datetimepicker);
|
@@ -1070,7 +1152,7 @@
|
|
1070
1152
|
time;
|
1071
1153
|
|
1072
1154
|
if (!norecursion && options.defaultDate) {
|
1073
|
-
date = _this.
|
1155
|
+
date = _this.strToDateTime(options.defaultDate);
|
1074
1156
|
d.setFullYear(date.getFullYear());
|
1075
1157
|
d.setMonth(date.getMonth());
|
1076
1158
|
d.setDate(date.getDate());
|
@@ -1085,7 +1167,6 @@
|
|
1085
1167
|
d.setHours(time.getHours());
|
1086
1168
|
d.setMinutes(time.getMinutes());
|
1087
1169
|
}
|
1088
|
-
|
1089
1170
|
return d;
|
1090
1171
|
};
|
1091
1172
|
|
@@ -1110,6 +1191,11 @@
|
|
1110
1191
|
};
|
1111
1192
|
|
1112
1193
|
_this.nextMonth = function () {
|
1194
|
+
|
1195
|
+
if (_this.currentTime === undefined || _this.currentTime === null) {
|
1196
|
+
_this.currentTime = _this.now();
|
1197
|
+
}
|
1198
|
+
|
1113
1199
|
var month = _this.currentTime.getMonth() + 1,
|
1114
1200
|
year;
|
1115
1201
|
if (month === 12) {
|
@@ -1140,6 +1226,11 @@
|
|
1140
1226
|
};
|
1141
1227
|
|
1142
1228
|
_this.prevMonth = function () {
|
1229
|
+
|
1230
|
+
if (_this.currentTime === undefined || _this.currentTime === null) {
|
1231
|
+
_this.currentTime = _this.now();
|
1232
|
+
}
|
1233
|
+
|
1143
1234
|
var month = _this.currentTime.getMonth() - 1;
|
1144
1235
|
if (month === -1) {
|
1145
1236
|
_this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);
|
@@ -1177,7 +1268,7 @@
|
|
1177
1268
|
}
|
1178
1269
|
if (tmpDate && tmpDate[2]) {
|
1179
1270
|
timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;
|
1180
|
-
currentTime = new Date((
|
1271
|
+
currentTime = new Date((_this.now(true)).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);
|
1181
1272
|
} else {
|
1182
1273
|
currentTime = sDateTime ? Date.parseDate(sDateTime, options.format) : _this.now();
|
1183
1274
|
}
|
@@ -1194,7 +1285,7 @@
|
|
1194
1285
|
return sDate;
|
1195
1286
|
}
|
1196
1287
|
|
1197
|
-
var currentTime = sDate ? Date.
|
1288
|
+
var currentTime = sDate ? Date.parse(sDate, options.formatDate) : _this.now(true);
|
1198
1289
|
if (!_this.isValidDate(currentTime)) {
|
1199
1290
|
currentTime = _this.now(true);
|
1200
1291
|
}
|
@@ -1220,6 +1311,13 @@
|
|
1220
1311
|
|
1221
1312
|
_xdsoft_datetime = new XDSoft_datetime();
|
1222
1313
|
|
1314
|
+
applyButton.on('click', function (e) {//pathbrite
|
1315
|
+
e.preventDefault();
|
1316
|
+
datetimepicker.data('changed', true);
|
1317
|
+
_xdsoft_datetime.setCurrentTime(getCurrentValue());
|
1318
|
+
input.val(_xdsoft_datetime.str());
|
1319
|
+
datetimepicker.trigger('close.xdsoft');
|
1320
|
+
});
|
1223
1321
|
mounth_picker
|
1224
1322
|
.find('.xdsoft_today_button')
|
1225
1323
|
.on('mousedown.xdsoft', function () {
|
@@ -1238,7 +1336,6 @@
|
|
1238
1336
|
stop = false;
|
1239
1337
|
|
1240
1338
|
(function arguments_callee1(v) {
|
1241
|
-
var month = _xdsoft_datetime.currentTime.getMonth();
|
1242
1339
|
if ($this.hasClass(options.next)) {
|
1243
1340
|
_xdsoft_datetime.nextMonth();
|
1244
1341
|
} else if ($this.hasClass(options.prev)) {
|
@@ -1294,6 +1391,11 @@
|
|
1294
1391
|
.on('xchange.xdsoft', function (event) {
|
1295
1392
|
clearTimeout(xchangeTimer);
|
1296
1393
|
xchangeTimer = setTimeout(function () {
|
1394
|
+
|
1395
|
+
if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
|
1396
|
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
1397
|
+
}
|
1398
|
+
|
1297
1399
|
var table = '',
|
1298
1400
|
start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),
|
1299
1401
|
i = 0,
|
@@ -1301,6 +1403,7 @@
|
|
1301
1403
|
today = _xdsoft_datetime.now(),
|
1302
1404
|
maxDate = false,
|
1303
1405
|
minDate = false,
|
1406
|
+
hDate,
|
1304
1407
|
d,
|
1305
1408
|
y,
|
1306
1409
|
m,
|
@@ -1310,7 +1413,8 @@
|
|
1310
1413
|
newRow = true,
|
1311
1414
|
time = '',
|
1312
1415
|
h = '',
|
1313
|
-
line_time
|
1416
|
+
line_time,
|
1417
|
+
description;
|
1314
1418
|
|
1315
1419
|
while (start.getDay() !== options.dayOfWeekStart) {
|
1316
1420
|
start.setDate(start.getDate() - 1);
|
@@ -1347,6 +1451,7 @@
|
|
1347
1451
|
y = start.getFullYear();
|
1348
1452
|
m = start.getMonth();
|
1349
1453
|
w = _xdsoft_datetime.getWeekOfYear(start);
|
1454
|
+
description = '';
|
1350
1455
|
|
1351
1456
|
classes.push('xdsoft_date');
|
1352
1457
|
|
@@ -1378,10 +1483,16 @@
|
|
1378
1483
|
classes.push('xdsoft_today');
|
1379
1484
|
}
|
1380
1485
|
|
1381
|
-
if (start.getDay() === 0 || start.getDay() === 6 ||
|
1486
|
+
if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(start.dateFormat(options.formatDate)) !== -1) {
|
1382
1487
|
classes.push('xdsoft_weekend');
|
1383
1488
|
}
|
1384
1489
|
|
1490
|
+
if (options.highlightedDates[start.dateFormat(options.formatDate)] !== undefined) {
|
1491
|
+
hDate = options.highlightedDates[start.dateFormat(options.formatDate)];
|
1492
|
+
classes.push(hDate.style === undefined ? 'xdsoft_highlighted_default' : hDate.style);
|
1493
|
+
description = hDate.desc === undefined ? '' : hDate.desc;
|
1494
|
+
}
|
1495
|
+
|
1385
1496
|
if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {
|
1386
1497
|
classes.push(options.beforeShowDay(start));
|
1387
1498
|
}
|
@@ -1394,7 +1505,7 @@
|
|
1394
1505
|
}
|
1395
1506
|
}
|
1396
1507
|
|
1397
|
-
table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '">' +
|
1508
|
+
table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '" title="' + description + '">' +
|
1398
1509
|
'<div>' + d + '</div>' +
|
1399
1510
|
'</td>';
|
1400
1511
|
|
@@ -1417,19 +1528,24 @@
|
|
1417
1528
|
h = '';
|
1418
1529
|
m = '';
|
1419
1530
|
line_time = function line_time(h, m) {
|
1420
|
-
var now = _xdsoft_datetime.now();
|
1531
|
+
var now = _xdsoft_datetime.now(), optionDateTime, current_time;
|
1421
1532
|
now.setHours(h);
|
1422
1533
|
h = parseInt(now.getHours(), 10);
|
1423
1534
|
now.setMinutes(m);
|
1424
1535
|
m = parseInt(now.getMinutes(), 10);
|
1425
|
-
|
1536
|
+
optionDateTime = new Date(_xdsoft_datetime.currentTime);
|
1426
1537
|
optionDateTime.setHours(h);
|
1427
1538
|
optionDateTime.setMinutes(m);
|
1428
1539
|
classes = [];
|
1429
|
-
if((options.minDateTime !== false && options.minDateTime > optionDateTime) || (options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) {
|
1540
|
+
if ((options.minDateTime !== false && options.minDateTime > optionDateTime) || (options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) {
|
1430
1541
|
classes.push('xdsoft_disabled');
|
1431
1542
|
}
|
1432
|
-
|
1543
|
+
|
1544
|
+
current_time = new Date(_xdsoft_datetime.currentTime);
|
1545
|
+
current_time.setHours(parseInt(_xdsoft_datetime.currentTime.getHours(), 10));
|
1546
|
+
current_time.setMinutes(Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step);
|
1547
|
+
|
1548
|
+
if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && current_time.getHours() === parseInt(h, 10) && (options.step > 59 || current_time.getMinutes() === parseInt(m, 10))) {
|
1433
1549
|
if (options.defaultSelect || datetimepicker.data('changed')) {
|
1434
1550
|
classes.push('xdsoft_current');
|
1435
1551
|
} else if (options.initTime) {
|
@@ -1469,7 +1585,7 @@
|
|
1469
1585
|
yearselect.children().eq(0)
|
1470
1586
|
.html(opt);
|
1471
1587
|
|
1472
|
-
for (i =
|
1588
|
+
for (i = parseInt(options.monthStart, 10), opt = ''; i <= parseInt(options.monthEnd, 10); i += 1) {
|
1473
1589
|
opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[options.lang].months[i] + '</div>';
|
1474
1590
|
}
|
1475
1591
|
monthselect.children().eq(0).html(opt);
|
@@ -1560,9 +1676,10 @@
|
|
1560
1676
|
datetimepicker.trigger('select.xdsoft', [currentTime]);
|
1561
1677
|
|
1562
1678
|
datetimepicker.data('input').val(_xdsoft_datetime.str());
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1679
|
+
|
1680
|
+
if (options.inline !== true && options.closeOnTimeSelect === true) {
|
1681
|
+
datetimepicker.trigger('close.xdsoft');
|
1682
|
+
}
|
1566
1683
|
|
1567
1684
|
if (options.onSelectTime && $.isFunction(options.onSelectTime)) {
|
1568
1685
|
options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
|
@@ -1709,7 +1826,6 @@
|
|
1709
1826
|
datetimepicker.setOptions(options);
|
1710
1827
|
|
1711
1828
|
function getCurrentValue() {
|
1712
|
-
|
1713
1829
|
var ct = false, time;
|
1714
1830
|
|
1715
1831
|
if (options.startDate) {
|
@@ -1719,7 +1835,7 @@
|
|
1719
1835
|
if (ct) {
|
1720
1836
|
ct = _xdsoft_datetime.strToDateTime(ct);
|
1721
1837
|
} else if (options.defaultDate) {
|
1722
|
-
ct = _xdsoft_datetime.
|
1838
|
+
ct = _xdsoft_datetime.strToDateTime(options.defaultDate);
|
1723
1839
|
if (options.defaultTime) {
|
1724
1840
|
time = _xdsoft_datetime.strtotime(options.defaultTime);
|
1725
1841
|
ct.setHours(time.getHours());
|
@@ -1800,7 +1916,7 @@
|
|
1800
1916
|
}
|
1801
1917
|
});
|
1802
1918
|
return this.each(function () {
|
1803
|
-
var datetimepicker = $(this).data('xdsoft_datetimepicker');
|
1919
|
+
var datetimepicker = $(this).data('xdsoft_datetimepicker'), $input;
|
1804
1920
|
if (datetimepicker) {
|
1805
1921
|
if ($.type(opt) === 'string') {
|
1806
1922
|
switch (opt) {
|
@@ -1824,6 +1940,10 @@
|
|
1824
1940
|
}
|
1825
1941
|
datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
|
1826
1942
|
break;
|
1943
|
+
case 'validate':
|
1944
|
+
$input = datetimepicker.data('input');
|
1945
|
+
$input.trigger('blur.xdsoft');
|
1946
|
+
break;
|
1827
1947
|
}
|
1828
1948
|
} else {
|
1829
1949
|
datetimepicker
|
@@ -1842,6 +1962,14 @@
|
|
1842
1962
|
};
|
1843
1963
|
$.fn.datetimepicker.defaults = default_options;
|
1844
1964
|
}(jQuery));
|
1965
|
+
|
1966
|
+
function HighlightedDate(date, desc, style) {
|
1967
|
+
"use strict";
|
1968
|
+
this.date = date;
|
1969
|
+
this.desc = desc;
|
1970
|
+
this.style = style;
|
1971
|
+
}
|
1972
|
+
|
1845
1973
|
(function () {
|
1846
1974
|
|
1847
1975
|
/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
|
@@ -1867,5 +1995,5 @@
|
|
1867
1995
|
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
1868
1996
|
* details.
|
1869
1997
|
*/
|
1870
|
-
Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var codePrefix="Date.prototype."+funcName+" = function() {return ";var code="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}if(code.length==0){code="\"\"";}else{code=code.substring(0,code.length-3);}eval(codePrefix+code+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};
|
1998
|
+
Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var codePrefix="Date.prototype."+funcName+" = function() {return ";var code="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}if(code.length==0){code="\"\"";}else{code=code.substring(0,code.length-3);}eval(codePrefix+code+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$",'i');eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};
|
1871
1999
|
}());
|