@@ -18,6 +18,57 @@ const (
1818 intervalYearly = "yearly"
1919)
2020
21+ var datePatternRegex = regexp .MustCompile ("(LT|LL?L?L?|l{1,4}|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|Q)" )
22+
23+ var datePatternReplacements = map [string ]string {
24+ "M" : "1" , // stdNumMonth 1 2 ... 11 12
25+ "MM" : "01" , // stdZeroMonth 01 02 ... 11 12
26+ "MMM" : "Jan" , // stdMonth Jan Feb ... Nov Dec
27+ "MMMM" : "January" , // stdLongMonth January February ... November December
28+ "D" : "2" , // stdDay 1 2 ... 30 30
29+ "DD" : "02" , // stdZeroDay 01 02 ... 30 31
30+ "DDD" : "<stdDayOfYear>" , // Day of the year 1 2 ... 364 365
31+ "DDDD" : "<stdDayOfYearZero>" , // Day of the year 001 002 ... 364 365 @todo****
32+ "d" : "<stdDayOfWeek>" , // Numeric representation of day of the week 0 1 ... 5 6
33+ "dd" : "Mon" , // ***Su Mo ... Fr Sa @todo
34+ "ddd" : "Mon" , // Sun Mon ... Fri Sat
35+ "dddd" : "Monday" , // stdLongWeekDay Sunday Monday ... Friday Saturday
36+ "e" : "<stdDayOfWeek>" , // Numeric representation of day of the week 0 1 ... 5 6 @todo
37+ "E" : "<stdDayOfWeekISO>" , // ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 2 ... 6 7 @todo
38+ "w" : "<stdWeekOfYear>" , // 1 2 ... 52 53
39+ "ww" : "<stdWeekOfYear>" , // ***01 02 ... 52 53 @todo
40+ "W" : "<stdWeekOfYear>" , // 1 2 ... 52 53
41+ "WW" : "<stdWeekOfYear>" , // ***01 02 ... 52 53 @todo
42+ "YY" : "06" , // stdYear 70 71 ... 29 30
43+ "YYYY" : "2006" , // stdLongYear 1970 1971 ... 2029 2030
44+ "gg" : "<stdIsoYearShort>" , // ISO-8601 year number 70 71 ... 29 30
45+ "gggg" : "<stdIsoYear>" , // ***1970 1971 ... 2029 2030
46+ "GG" : "<stdIsoYearShort>" , // 70 71 ... 29 30
47+ "GGGG" : "<stdIsoYear>" , // ***1970 1971 ... 2029 2030
48+ "Q" : "<stdQuarter>" , // 1, 2, 3, 4
49+ "A" : "PM" , // stdPM AM PM
50+ "a" : "pm" , // stdpm am pm
51+ "H" : "<stdHourNoZero>" , // stdHour 0 1 ... 22 23
52+ "HH" : "15" , // 00 01 ... 22 23
53+ "h" : "3" , // stdHour12 1 2 ... 11 12
54+ "hh" : "03" , // stdZeroHour12 01 02 ... 11 12
55+ "m" : "4" , // stdZeroMinute 0 1 ... 58 59
56+ "mm" : "04" , // stdZeroMinute 00 01 ... 58 59
57+ "s" : "5" , // stdSecond 0 1 ... 58 59
58+ "ss" : "05" , // stdZeroSecond ***00 01 ... 58 59
59+ "z" : "MST" , // EST CST ... MST PST
60+ "zz" : "MST" , // EST CST ... MST PST
61+ "Z" : "Z07:00" , // stdNumColonTZ -07:00 -06:00 ... +06:00 +07:00
62+ "ZZ" : "-0700" , // stdNumTZ -0700 -0600 ... +0600 +0700
63+ "X" : "<stdUnix>" , // Seconds since unix epoch 1360013296
64+ "LT" : "3:04 PM" , // 8:30 PM
65+ "L" : "01/02/2006" , // 09/04/1986
66+ "l" : "1/2/2006" , // 9/4/1986
67+ "ll" : "Jan 2 2006" , // Sep 4 1986
68+ "lll" : "Jan 2 2006 3:04 PM" , // Sep 4 1986 8:30 PM
69+ "llll" : "Mon, Jan 2 2006 3:04 PM" , // Thu, Sep 4 1986 8:30 PM
70+ }
71+
2172type IndexPattern interface {
2273 GetIndices (timeRange backend.TimeRange ) ([]string , error )
2374}
@@ -200,57 +251,6 @@ func (i *yearlyInterval) Generate(from, to time.Time) []time.Time {
200251 return intervals
201252}
202253
203- var datePatternRegex = regexp .MustCompile ("(LT|LL?L?L?|l{1,4}|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|Q)" )
204-
205- var datePatternReplacements = map [string ]string {
206- "M" : "1" , // stdNumMonth 1 2 ... 11 12
207- "MM" : "01" , // stdZeroMonth 01 02 ... 11 12
208- "MMM" : "Jan" , // stdMonth Jan Feb ... Nov Dec
209- "MMMM" : "January" , // stdLongMonth January February ... November December
210- "D" : "2" , // stdDay 1 2 ... 30 30
211- "DD" : "02" , // stdZeroDay 01 02 ... 30 31
212- "DDD" : "<stdDayOfYear>" , // Day of the year 1 2 ... 364 365
213- "DDDD" : "<stdDayOfYearZero>" , // Day of the year 001 002 ... 364 365 @todo****
214- "d" : "<stdDayOfWeek>" , // Numeric representation of day of the week 0 1 ... 5 6
215- "dd" : "Mon" , // ***Su Mo ... Fr Sa @todo
216- "ddd" : "Mon" , // Sun Mon ... Fri Sat
217- "dddd" : "Monday" , // stdLongWeekDay Sunday Monday ... Friday Saturday
218- "e" : "<stdDayOfWeek>" , // Numeric representation of day of the week 0 1 ... 5 6 @todo
219- "E" : "<stdDayOfWeekISO>" , // ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 2 ... 6 7 @todo
220- "w" : "<stdWeekOfYear>" , // 1 2 ... 52 53
221- "ww" : "<stdWeekOfYear>" , // ***01 02 ... 52 53 @todo
222- "W" : "<stdWeekOfYear>" , // 1 2 ... 52 53
223- "WW" : "<stdWeekOfYear>" , // ***01 02 ... 52 53 @todo
224- "YY" : "06" , // stdYear 70 71 ... 29 30
225- "YYYY" : "2006" , // stdLongYear 1970 1971 ... 2029 2030
226- "gg" : "<stdIsoYearShort>" , // ISO-8601 year number 70 71 ... 29 30
227- "gggg" : "<stdIsoYear>" , // ***1970 1971 ... 2029 2030
228- "GG" : "<stdIsoYearShort>" , // 70 71 ... 29 30
229- "GGGG" : "<stdIsoYear>" , // ***1970 1971 ... 2029 2030
230- "Q" : "<stdQuarter>" , // 1, 2, 3, 4
231- "A" : "PM" , // stdPM AM PM
232- "a" : "pm" , // stdpm am pm
233- "H" : "<stdHourNoZero>" , // stdHour 0 1 ... 22 23
234- "HH" : "15" , // 00 01 ... 22 23
235- "h" : "3" , // stdHour12 1 2 ... 11 12
236- "hh" : "03" , // stdZeroHour12 01 02 ... 11 12
237- "m" : "4" , // stdZeroMinute 0 1 ... 58 59
238- "mm" : "04" , // stdZeroMinute 00 01 ... 58 59
239- "s" : "5" , // stdSecond 0 1 ... 58 59
240- "ss" : "05" , // stdZeroSecond ***00 01 ... 58 59
241- "z" : "MST" , // EST CST ... MST PST
242- "zz" : "MST" , // EST CST ... MST PST
243- "Z" : "Z07:00" , // stdNumColonTZ -07:00 -06:00 ... +06:00 +07:00
244- "ZZ" : "-0700" , // stdNumTZ -0700 -0600 ... +0600 +0700
245- "X" : "<stdUnix>" , // Seconds since unix epoch 1360013296
246- "LT" : "3:04 PM" , // 8:30 PM
247- "L" : "01/02/2006" , // 09/04/1986
248- "l" : "1/2/2006" , // 9/4/1986
249- "ll" : "Jan 2 2006" , // Sep 4 1986
250- "lll" : "Jan 2 2006 3:04 PM" , // Sep 4 1986 8:30 PM
251- "llll" : "Mon, Jan 2 2006 3:04 PM" , // Thu, Sep 4 1986 8:30 PM
252- }
253-
254254func formatDate (t time.Time , pattern string ) string {
255255 var formattedDatePatterns []string
256256 var bases []string
0 commit comments