Przeglądaj źródła

把000开头的时间重新设置为1970-01-01 00:00:00

aries.zhang 5 lat temu
rodzic
commit
e41a402ce9
1 zmienionych plików z 11 dodań i 5 usunięć
  1. 11 5
      models/LocalTime.go

+ 11 - 5
models/LocalTime.go

@@ -22,7 +22,7 @@ func NowLocal() LocalTime {
 
 func (t *LocalTime) UnmarshalJSON(data []byte) error {
 	if data[0] == '"' && data[len(data)-1] == '"' {
-		data = data[1: len(data)-1]
+		data = data[1 : len(data)-1]
 	}
 
 	dataStr := strings.TrimSpace(string(data))
@@ -80,7 +80,7 @@ func (t LocalTime) String() string {
 // 数据库解析到对象时调用
 func (t *LocalTime) FromDB(data []byte) error {
 	if data[0] == '"' && data[len(data)-1] == '"' {
-		data = data[1: len(data)-1]
+		data = data[1 : len(data)-1]
 	}
 
 	dataStr := strings.TrimSpace(string(data))
@@ -99,7 +99,8 @@ func (t *LocalTime) FromDB(data []byte) error {
 
 	if len(dataStr) > 19 {
 		dataStr = dataStr[0:19]
-		if dataStr == "0000-00-00 00:00:00" {
+		if strings.Index(dataStr, "000") == 0 {
+			// if dataStr == "0000-00-00 00:00:00" {
 			dataStr = zeroTime
 		}
 	} else if len(dataStr) == 10 {
@@ -119,7 +120,12 @@ func (t *LocalTime) FromDB(data []byte) error {
 
 // 对象解析到数据库时调用
 func (t LocalTime) ToDB() ([]byte, error) {
+	dataStr := time.Time(t).Format(timeFormat)
+	if strings.Index(dataStr, "000") == 0 {
+		// if dataStr == "0000-00-00 00:00:00" {
+		dataStr = zeroTime
+	}
 	b := make([]byte, 0, len(timeFormat)+2)
-	b = append(b, []byte(time.Time(t).Format(timeFormat))...)
+	b = append(b, []byte(dataStr)...)
 	return b, nil
-}
+}