summaryrefslogtreecommitdiff
path: root/model/time.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/time.go')
-rw-r--r--model/time.go38
1 files changed, 23 insertions, 15 deletions
diff --git a/model/time.go b/model/time.go
index baf3ce6..e0c399c 100644
--- a/model/time.go
+++ b/model/time.go
@@ -1,34 +1,42 @@
package model
import (
- "time"
- "errors"
- sqldriver "database/sql/driver"
+ sqldriver "database/sql/driver"
+ "errors"
+ "time"
)
type Time time.Time
func MakeTimeNow() Time {
- return Time(time.Now().UTC())
+ return Time(time.Now().UTC())
}
func (self Time) AsUTCString() string {
- return time.Time(self).Format(time.RFC3339)
+ return time.Time(self).Format(time.RFC3339)
}
func (self Time) Value() (sqldriver.Value, error) {
- return self.AsUTCString(), nil
+ return self.AsUTCString(), nil
}
func (self *Time) Scan(value any) error {
- if valueStr, ok := value.(string); ok {
- parsedTime, err := time.Parse(time.RFC3339, valueStr)
- if err == nil {
- *self = Time(parsedTime.UTC())
- }
- return err
- } else {
- return errors.New("Expected a string")
- }
+ if valueStr, ok := value.(string); ok {
+ parsedTime, err := time.Parse(time.RFC3339, valueStr)
+ if err == nil {
+ *self = Time(parsedTime.UTC())
+ }
+ return err
+ } else {
+ return errors.New("Expected a string")
+ }
+}
+
+func (from Time) Compare(to Time) int {
+ return time.Time(from).Compare(time.Time(to))
+}
+
+func (self *Time) Add(duration time.Duration) {
+ *self = Time(time.Time(*self).Add(duration))
}