Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / TextDate.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">// generates a renderer function to be used for textual date groups\r
9 Ext.util.Format.createTextDateRenderer = function(){\r
10     // create the cache of ranges to be reused\r
11     var today = new Date().clearTime(true);\r
12     var year = today.getFullYear();\r
13     var todayTime = today.getTime();\r
14     var yesterday = today.add('d', -1).getTime();\r
15     var tomorrow = today.add('d', 1).getTime();\r
16     var weekDays = today.add('d', 6).getTime();\r
17     var lastWeekDays = today.add('d', -6).getTime();\r
18 \r
19     var weekAgo1 = today.add('d', -13).getTime();\r
20     var weekAgo2 = today.add('d', -20).getTime();\r
21     var weekAgo3 = today.add('d', -27).getTime();\r
22 \r
23     var f = function(date){\r
24         if(!date) {\r
25             return '(No Date)';\r
26         }\r
27         var notime = date.clearTime(true).getTime();\r
28 \r
29         if (notime == todayTime) {\r
30             return 'Today';\r
31         }\r
32         if(notime > todayTime){\r
33             if (notime == tomorrow) {\r
34                 return 'Tomorrow';\r
35             }\r
36             if (notime <= weekDays) {\r
37                 return date.format('l');\r
38             }\r
39         }else {\r
40                 if(notime == yesterday) {\r
41                 return 'Yesterday';\r
42             }\r
43             if(notime >= lastWeekDays) {\r
44                 return 'Last ' + date.format('l');\r
45             }\r
46         }            \r
47         return date.getFullYear() == year ? date.format('D m/d') : date.format('D m/d/Y');\r
48    };\r
49    \r
50    f.date = today;\r
51    return f;\r
52 };</pre>    \r
53 </body>\r
54 </html>