diff --git a/crmMeeting.go b/crmMeeting.go index d8177cc..8015d7b 100644 --- a/crmMeeting.go +++ b/crmMeeting.go @@ -111,12 +111,14 @@ func crmGetMeeting(id string) (ret crmdMeeting, err error) { func (m crmdMeeting) StartDate() string { t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) - return t.Format("02 January, 2006") + AEST, _ := time.LoadLocation("Australia/Sydney") + return t.In(AEST).Format("02 January, 2006") } func (m crmdMeeting) StartHour() string { + AEST, _ := time.LoadLocation("Australia/Sydney") t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) - return t.Format("15:04") + return t.In(AEST).Format("15:04") } func (m crmdMeeting) DurationHour() string { diff --git a/crmMeeting_test.go b/crmMeeting_test.go index 3139ba9..d694d70 100644 --- a/crmMeeting_test.go +++ b/crmMeeting_test.go @@ -232,12 +232,15 @@ func TestCreateMeeting(t *testing.T) { } func TestDecodeDate(t *testing.T) { - layout := "2 January, 2006 15:04" - value := "23 July, 2017 10:30" + layout := "2 January, 2006 15:04 MST" + value := "23 July, 2017 10:30 AEST" tt, err := time.Parse(layout, value) if err != nil { log.Print(err) return } log.Println(tt) + + utc, err := time.LoadLocation("UTC") + log.Println(tt.In(utc)) } diff --git a/spa/editmeeting.html b/spa/editmeeting.html index 2d520b1..acdf79c 100644 --- a/spa/editmeeting.html +++ b/spa/editmeeting.html @@ -89,6 +89,7 @@
活动时间按照澳洲东岸时间(悉尼,墨尔本)时间为准。
活动内容将上报校友会备案。校友会全体在册人员将收到你的活动邀请,各位校友自行选择参加或不参加。
主办者将收到具体的人数更新,以及本次活动签到用的二维码。
所有当天参加活动的校友,通过公众号扫码即可签到
diff --git a/spaEditMeeting.go b/spaEditMeeting.go index d46c7d4..9e7df9d 100644 --- a/spaEditMeeting.go +++ b/spaEditMeeting.go @@ -183,18 +183,21 @@ func (m *crmdMeeting) validateFormFile(r *http.Request) (ok bool) { } func (m *crmdMeeting) buildStartDate(date, hour, duration string) { - layout := "2 January, 2006 15:04" - value := strings.TrimSpace(date) + " " + strings.TrimSpace(hour) + layout := "2 January, 2006 15:04 MST" + value := strings.TrimSpace(date) + " " + strings.TrimSpace(hour) + " AEST" //Force Sydney time t, err := time.Parse(layout, value) if err != nil { m.addSpaErr("开始日期,时间,无法识别") return } - m.DateStart = t.Format(getCrmTimeLayout()) - log.Println(m.DateStart) + utc, err := time.LoadLocation("UTC") + if err == nil { + m.DateStart = t.In(utc).Format(getCrmTimeLayout()) + log.Println(m.DateStart) - m.buildDuration(duration) - m.DateEnd = t.Add(time.Second * time.Duration(m.Duration)).Format(getCrmTimeLayout()) + m.buildDuration(duration) + m.DateEnd = t.In(utc).Add(time.Second * time.Duration(m.Duration)).Format(getCrmTimeLayout()) + } } func (m *crmdMeeting) buildDuration(duration string) {