mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 21:16:26 +01:00 
			
		
		
		
	fix timezone!
This commit is contained in:
		
							parent
							
								
									6c2536b89c
								
							
						
					
					
						commit
						f114f78743
					
				@ -82,8 +82,7 @@ type Action struct {
 | 
			
		||||
func (a *Action) AfterSet(colName string, _ xorm.Cell) {
 | 
			
		||||
	switch colName {
 | 
			
		||||
	case "created":
 | 
			
		||||
		now := time.Now()
 | 
			
		||||
		a.Created = a.Created.Add(now.Sub(now.UTC()))
 | 
			
		||||
		a.Created = regulateTimeZone(a.Created)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -93,8 +93,7 @@ func (i *Issue) AfterSet(colName string, _ xorm.Cell) {
 | 
			
		||||
			log.Error(3, "GetUserByID[%d]: %v", i.ID, err)
 | 
			
		||||
		}
 | 
			
		||||
	case "created":
 | 
			
		||||
		now := time.Now()
 | 
			
		||||
		i.Created = i.Created.Add(now.Sub(now.UTC()))
 | 
			
		||||
		i.Created = regulateTimeZone(i.Created)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1360,8 +1359,7 @@ func (c *Comment) AfterSet(colName string, _ xorm.Cell) {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case "created":
 | 
			
		||||
		now := time.Now()
 | 
			
		||||
		c.Created = c.Created.Add(now.Sub(now.UTC()))
 | 
			
		||||
		c.Created = regulateTimeZone(c.Created)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,9 @@ import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"path"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/Unknwon/com"
 | 
			
		||||
	_ "github.com/go-sql-driver/mysql"
 | 
			
		||||
	"github.com/go-xorm/core"
 | 
			
		||||
	"github.com/go-xorm/xorm"
 | 
			
		||||
@ -40,6 +42,25 @@ func sessionRelease(sess *xorm.Session) {
 | 
			
		||||
	sess.Close()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Note: get back time.Time from database Go sees it at UTC where they are really Local.
 | 
			
		||||
// 	So this function makes correct timezone offset.
 | 
			
		||||
func regulateTimeZone(t time.Time) time.Time {
 | 
			
		||||
	if setting.UseSQLite3 {
 | 
			
		||||
		return t
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	zone := t.Local().Format("-0700")
 | 
			
		||||
	if len(zone) != 5 {
 | 
			
		||||
		return t
 | 
			
		||||
	}
 | 
			
		||||
	offset := com.StrTo(zone[2:3]).MustInt()
 | 
			
		||||
 | 
			
		||||
	if zone[0] == '-' {
 | 
			
		||||
		return t.Add(time.Duration(offset) * time.Hour)
 | 
			
		||||
	}
 | 
			
		||||
	return t.Add(-1 * time.Duration(offset) * time.Hour)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	x         *xorm.Engine
 | 
			
		||||
	tables    []interface{}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user