diff options
author | slene <vslene@gmail.com> | 2014-03-15 15:28:06 +0800 |
---|---|---|
committer | slene <vslene@gmail.com> | 2014-03-15 15:28:06 +0800 |
commit | 06deed820d9f48ecf972c8716b17ad58b91ab9b9 (patch) | |
tree | fc94500dd1dd607d1c6470f89abadcba84bbc285 /modules/base/tool.go | |
parent | e251b9bbca35e01060ac3b2ee0bd836dc7719c19 (diff) | |
download | gitea-06deed820d9f48ecf972c8716b17ad58b91ab9b9.tar.gz gitea-06deed820d9f48ecf972c8716b17ad58b91ab9b9.zip |
Add HomeLink and AvatarLink to User model. Please use .SignedUser in template.
Diffstat (limited to 'modules/base/tool.go')
-rw-r--r-- | modules/base/tool.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go index 49a2a2b5d1..4b84ac0bdd 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -9,6 +9,7 @@ import ( "encoding/hex" "fmt" "html/template" + "strings" "time" ) @@ -134,6 +135,61 @@ func Subtract(left interface{}, right interface{}) interface{} { } } +// DateFormat pattern rules. +var datePatterns = []string{ + // year + "Y", "2006", // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 + "y", "06", //A two digit representation of a year Examples: 99 or 03 + + // month + "m", "01", // Numeric representation of a month, with leading zeros 01 through 12 + "n", "1", // Numeric representation of a month, without leading zeros 1 through 12 + "M", "Jan", // A short textual representation of a month, three letters Jan through Dec + "F", "January", // A full textual representation of a month, such as January or March January through December + + // day + "d", "02", // Day of the month, 2 digits with leading zeros 01 to 31 + "j", "2", // Day of the month without leading zeros 1 to 31 + + // week + "D", "Mon", // A textual representation of a day, three letters Mon through Sun + "l", "Monday", // A full textual representation of the day of the week Sunday through Saturday + + // time + "g", "3", // 12-hour format of an hour without leading zeros 1 through 12 + "G", "15", // 24-hour format of an hour without leading zeros 0 through 23 + "h", "03", // 12-hour format of an hour with leading zeros 01 through 12 + "H", "15", // 24-hour format of an hour with leading zeros 00 through 23 + + "a", "pm", // Lowercase Ante meridiem and Post meridiem am or pm + "A", "PM", // Uppercase Ante meridiem and Post meridiem AM or PM + + "i", "04", // Minutes with leading zeros 00 to 59 + "s", "05", // Seconds, with leading zeros 00 through 59 + + // time zone + "T", "MST", + "P", "-07:00", + "O", "-0700", + + // RFC 2822 + "r", time.RFC1123Z, +} + +// Parse Date use PHP time format. +func DateParse(dateString, format string) (time.Time, error) { + replacer := strings.NewReplacer(datePatterns...) + format = replacer.Replace(format) + return time.ParseInLocation(format, dateString, time.Local) +} + +// Date takes a PHP like date func to Go's time format. +func DateFormat(t time.Time, format string) string { + replacer := strings.NewReplacer(datePatterns...) + format = replacer.Replace(format) + return t.Format(format) +} + type Actioner interface { GetOpType() int GetActUserName() string |