| package helper | |
| 
 | |
| import ( | |
| 	"strconv" | |
| 	"time" | |
| ) | |
| 
 | |
| func FormatDateTime(str string) string { | |
| 	date, err := strconv.ParseInt(str, 10, 64) | |
| 	if err != nil { | |
| 		return "" | |
| 	} | |
| 	return time.Unix(date, 0).Format("2006-01-02 15:04:05") | |
| } | |
| func FormatDate(str string) string { | |
| 	date, err := strconv.ParseInt(str, 10, 64) | |
| 	if err != nil { | |
| 		return "" | |
| 	} | |
| 	return time.Unix(date, 0).Format("2006-01-02") | |
| } | |
| 
 | |
| //获取当天开始时间戳 | |
| func GetTodayStartTimeStamp() int64 { | |
| 
 | |
| 	var reserveTime time.Time | |
| 	loc, _ := time.LoadLocation("Asia/Shanghai") | |
| 
 | |
| 	date := time.Now().Format("2006-01-02") | |
| 	reserveTime, _ = time.ParseInLocation("2006-01-02", date, loc) | |
| 	return reserveTime.Unix() | |
| } | |
| 
 | |
| //获取本周开始时间戳 | |
| func GetWeekStartTimeStamp() int64 { | |
| 
 | |
| 	var reserveTime time.Time | |
| 	now := time.Now() | |
| 	loc, _ := time.LoadLocation("Asia/Shanghai") | |
| 
 | |
| 	offset := int(time.Monday - now.Weekday()) | |
| 	if offset > 0 { | |
| 		offset = -6 | |
| 	} | |
| 
 | |
| 	weekStartDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset) | |
| 	weekMonday := weekStartDate.Format("2006-01-02") | |
| 
 | |
| 	reserveTime, _ = time.ParseInLocation("2006-01-02", weekMonday, loc) | |
| 	return reserveTime.Unix() | |
| } | |
| 
 | |
| //获取当月开始时间戳 | |
| func GetMonthStartTimeStamp() int64 { | |
| 
 | |
| 	var reserveTime time.Time | |
| 	loc, _ := time.LoadLocation("Asia/Shanghai") | |
| 
 | |
| 	date := time.Now().Format("2006-01") | |
| 	reserveTime, _ = time.ParseInLocation("2006-01", date, loc) | |
| 	return reserveTime.Unix() | |
| } | |
| 
 | |
| // RFC3339ToCSTLayout convert rfc3339 value to china standard time layout | |
| func RFC3339ToCSTLayout(value string) (string, error) { | |
| 	var ( | |
| 		cst *time.Location | |
| 	) | |
| 
 | |
| 	var err error | |
| 	if cst, err = time.LoadLocation("Asia/Shanghai"); err != nil { | |
| 		panic(err) | |
| 	} | |
| 
 | |
| 	ts, err := time.Parse(time.RFC3339, value) | |
| 	if err != nil { | |
| 		return "", err | |
| 	} | |
| 
 | |
| 	return ts.In(cst).Format("2006-01-02 15:04:05"), nil | |
| }
 |