Bladeren bron

:art: Attribute View date column calculate https://github.com/siyuan-note/siyuan/issues/8757

Daniel 2 jaren geleden
bovenliggende
commit
83143e3289
2 gewijzigde bestanden met toevoegingen van 11 en 6 verwijderingen
  1. 8 3
      kernel/av/av.go
  2. 3 3
      kernel/av/table.go

+ 8 - 3
kernel/av/av.go

@@ -181,16 +181,21 @@ const (
 	DateFormatDuration DateFormat = "duration"
 )
 
-func NewFormattedValueDate(content int64, format DateFormat) (ret *ValueDate) {
+func NewFormattedValueDate(content, content2 int64, format DateFormat) (ret *ValueDate) {
 	formatted := time.UnixMilli(content).Format("2006-01-02 15:04")
+	if 0 < content2 {
+		formatted += " → " + time.UnixMilli(content2).Format("2006-01-02 15:04")
+	}
 	switch format {
 	case DateFormatNone:
 	case DateFormatDuration:
-		formatted = time.Duration(content).String()
+		t1 := time.UnixMilli(content)
+		t2 := time.UnixMilli(content2)
+		formatted = util.HumanizeRelTime(t1, t2, util.Lang)
 	}
 	ret = &ValueDate{
 		Content:          content,
-		Content2:         0,
+		Content2:         content2,
 		HasEndDate:       false,
 		FormattedContent: formatted,
 	}

+ 3 - 3
kernel/av/table.go

@@ -574,7 +574,7 @@ func (table *Table) calcColDate(col *TableColumn, colIndex int) {
 			}
 		}
 		if 0 != earliest {
-			col.Calc.Result = &Value{Date: NewFormattedValueDate(earliest, DateFormatNone)}
+			col.Calc.Result = &Value{Date: NewFormattedValueDate(earliest, 0, DateFormatNone)}
 		}
 	case CalcOperatorLatest:
 		latest := int64(0)
@@ -586,7 +586,7 @@ func (table *Table) calcColDate(col *TableColumn, colIndex int) {
 			}
 		}
 		if 0 != latest {
-			col.Calc.Result = &Value{Date: NewFormattedValueDate(latest, DateFormatNone)}
+			col.Calc.Result = &Value{Date: NewFormattedValueDate(latest, 0, DateFormatNone)}
 		}
 	case CalcOperatorRange:
 		earliest := int64(0)
@@ -602,7 +602,7 @@ func (table *Table) calcColDate(col *TableColumn, colIndex int) {
 			}
 		}
 		if 0 != earliest && 0 != latest {
-			col.Calc.Result = &Value{Date: NewFormattedValueDate(latest-earliest, DateFormatDuration)}
+			col.Calc.Result = &Value{Date: NewFormattedValueDate(earliest, latest, DateFormatDuration)}
 		}
 	}
 }