]>
git.proxmox.com Git - extjs.git/blob - extjs/packages/charts/src/chart/axis/segmenter/Time.js
2 * @class Ext.chart.axis.segmenter.Time
3 * @extends Ext.chart.axis.segmenter.Segmenter
7 Ext
.define('Ext.chart.axis.segmenter.Time', {
8 extend
: 'Ext.chart.axis.segmenter.Segmenter',
9 alias
: 'segmenter.time',
14 * If specified, the will override the result of {@link #preferredStep}.
19 renderer: function (value
, context
) {
20 var ExtDate
= Ext
.Date
;
21 switch (context
.majorTicks
.unit
) {
23 return ExtDate
.format(value
, 'Y');
25 return ExtDate
.format(value
, 'Y-m');
27 return ExtDate
.format(value
, 'Y-m-d');
29 return ExtDate
.format(value
, 'Y-m-d\nH:i:s');
32 from: function (value
) {
33 return new Date(value
);
36 diff: function (min
, max
, unit
) {
43 return Ext
.Date
.diff(min
, max
, unit
);
46 align: function (date
, step
, unit
) {
47 if (unit
=== 'd' && step
>= 7) {
48 date
= Ext
.Date
.align(date
, 'd', step
);
49 date
.setDate(date
.getDate() - date
.getDay() + 1);
52 return Ext
.Date
.align(date
, unit
, step
);
56 add: function (value
, step
, unit
) {
57 return Ext
.Date
.add(new Date(value
), unit
, step
);
61 [Ext
.Date
.YEAR
, 1, 2, 5, 10, 20, 50, 100, 200, 500],
62 [Ext
.Date
.MONTH
, 1, 3, 6],
63 [Ext
.Date
.DAY
, 1, 7, 14],
64 [Ext
.Date
.HOUR
, 1, 6, 12],
65 [Ext
.Date
.MINUTE
, 1, 5, 15, 30],
66 [Ext
.Date
.SECOND
, 1, 5, 15, 30],
67 [Ext
.Date
.MILLI
, 1, 2, 5, 10, 20, 50, 100, 200, 500]
70 preferredStep: function (min
, estStepSize
) {
72 return this.getStep();
74 var from = new Date(+min
),
75 to
= new Date(+min
+ Math
.ceil(estStepSize
)),
76 units
= this.stepUnits
,
80 for (i
= 0; i
< units
.length
; i
++) {
82 diff
= this.diff(from, to
, unit
);
85 for (j
= 1; j
< units
[i
].length
; j
++) {
86 if (diff
<= units
[i
][j
]) {
105 result
= {unit
: Ext
.Date
.DAY
, step
: 1}; // Default step is one Day.