src/main/webapp/jquery/js/dataTables.dateFormat.js
author Tomas Zeman <tzeman@volny.cz>
Tue, 24 Apr 2012 16:42:34 +0200
changeset 77 8f0eddd7aa85
child 105 66aeb6b3a3a7
permissions -rw-r--r--
Datatables DSL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
77
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
/**
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
 * https://github.com/sedovsek/DataTables-EU-date-Plug-In
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
 * commit 4069413
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
 *
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
 * Copyright 2011 https://github.com/sedovsek
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
 *
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
 * DataTables-EU-date-Plug-In is a plug-in for sorting EU Date (european date
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
 * format), (d)d.mm(.yyyy) or (d)d/mm(/yyyy)
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 * 
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 * Example:
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
 * <script type="text/javascript" src="jquery.dataTables.js"></script>
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
 * <script type="text/javascript" src="dataTables.dateFormat.js"></script>
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
 * <script type="text/javascript">
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
 * 	$(document).ready(function() {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
 * 		$('#example').dataTable( {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
 * 			"aoColumns": [
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
 * 				null,
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
 * 				null,
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
 * 				null,
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
 * 				{ "sType": "eu_date" },
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
 * 				null
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
 * 			]
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
 * 		} );
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
 * 	} );
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
 * </script>
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
 * 
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
 */
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
function calculate_date(date) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
	var date = date.replace(" ", "");
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
	if (date.indexOf('.') > 0) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
		/*date a, format dd.mn.(yyyy) ; (year is optional)*/
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
		var eu_date = date.split('.');
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
	} else {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
		/*date a, format dd/mn/(yyyy) ; (year is optional)*/
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
		var eu_date = date.split('/');
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
	}
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
	/*year (optional)*/
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
	if (eu_date[2]) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
		var year = eu_date[2];
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
	} else {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
		var year = 0;
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
	}
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
	/*month*/
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
	var month = eu_date[1];
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
	if (month.length == 1) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
		month = 0+month;
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
	}
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
	/*day*/
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
	var day = eu_date[0];
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
	if (day.length == 1) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
		day = 0+day;
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
	}
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
	return (year + month + day) * 1;
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
}
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
jQuery.fn.dataTableExt.oSort['eu_date-asc'] = function(a, b) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
	x = calculate_date(a);
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
	y = calculate_date(b);
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
};
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
jQuery.fn.dataTableExt.oSort['eu_date-desc'] = function(a, b) {
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
	x = calculate_date(a);
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
	y = calculate_date(b);
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
	
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
	return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
};