| @@ -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 { | |||
| @@ -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)) | |||
| } | |||
| @@ -89,6 +89,7 @@ | |||
| </div> | |||
| <div class="col s12 m12 l12"> | |||
| <b>主办方须知</b> | |||
| <p>活动时间按照澳洲东岸时间(悉尼,墨尔本)时间为准。</p> | |||
| <p>活动内容将上报校友会备案。校友会全体在册人员将收到你的活动邀请,各位校友自行选择参加或不参加。</p> | |||
| <p>主办者将收到具体的人数更新,以及本次活动签到用的二维码。</p> | |||
| <p>所有当天参加活动的校友,通过公众号扫码即可签到</p> | |||
| @@ -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) { | |||