Update pdf.go

This commit is contained in:
JNG 2026-03-11 19:28:31 +08:00
parent 1ebbdece8b
commit e47bb3316c

View File

@ -617,17 +617,17 @@ func QuestionnaireSurveyPDF(templatePath, outputPath string, data *model.Questio
return fmt.Errorf("设置字体失败: %w", err)
}
startTime, err := time.Parse("2006-01-02", data.BundleStartDate)
startTime, err := parseFlexibleDate(data.BundleStartDate)
if err != nil {
return fmt.Errorf("BundleStartDate格式错误: %w", err)
}
endTime, err := time.Parse("2006-01-02", data.BundleEndDate)
endTime, err := parseFlexibleDate(data.BundleEndDate)
if err != nil {
return fmt.Errorf("BundleEndDate格式错误: %w", err)
}
submissionDate, err := time.Parse("2006-01-02", data.SubmissionDate)
submissionDate, err := parseFlexibleDate(data.SubmissionDate)
if err != nil {
return fmt.Errorf("submissionDate格式错误: %w", err)
return fmt.Errorf("SubmissionDate格式错误: %w", err)
}
nowTime := time.Now().Format(time.DateTime)
onePage := 1
@ -868,3 +868,26 @@ func scoreStars(score int) string {
return "★★★★★"
}
}
func parseFlexibleDate(value string) (time.Time, error) {
v := strings.TrimSpace(value)
if v == "" {
return time.Time{}, fmt.Errorf("日期为空")
}
layouts := []string{
"2006-01-02",
time.RFC3339,
"2006-01-02 15:04:05",
"2006-01-02 15:04",
}
var lastErr error
for _, layout := range layouts {
t, err := time.Parse(layout, v)
if err == nil {
return t, nil
}
lastErr = err
}
return time.Time{}, fmt.Errorf("不支持的日期格式: %s, %w", v, lastErr)
}