summaryrefslogtreecommitdiff
path: root/time.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-14 04:11:16 -0500
committerJeff Carr <[email protected]>2025-10-14 04:11:16 -0500
commita63a82e78a047c8dde14f106117b3ce88f209775 (patch)
treecadd3302dfb17816c496fbfc78744d8e5bcc21d8 /time.go
parentdeefa630ab2f566d7ad9ee5fc04769d58a8f4c23 (diff)
easier to track by allowing nil
Diffstat (limited to 'time.go')
-rw-r--r--time.go26
1 files changed, 18 insertions, 8 deletions
diff --git a/time.go b/time.go
index 364f340..99a74e7 100644
--- a/time.go
+++ b/time.go
@@ -26,7 +26,7 @@ func Time(someTimeAgoOrLaterNotsure any) string {
if len(guess) > 0 {
return fmt.Sprintf("%-15s", guess)
}
- return FormatTime(t)
+ return FormatTime(*t)
}
func TimeLocal(someTimeAgoOrLaterNotsure any) string {
@@ -43,26 +43,34 @@ func TimeLocal(someTimeAgoOrLaterNotsure any) string {
}
return "nope"
}
- return FormatTimeLocal(t)
+ return FormatTimeLocal(*t)
}
func GetTime(mightBeTimeMightNotBeTime any) (time.Time, error) {
_, t, err := TimeCheck(mightBeTimeMightNotBeTime)
- return t, err
+ if t == nil {
+ var emptyTime time.Time
+ return emptyTime, err
+ }
+ return *t, err
}
-func TimeCheck(maybeTime any) (string, time.Time, error) {
+func TimeCheck(maybeTime any) (string, *time.Time, error) {
var guess string
- var t time.Time
+ var t *time.Time
var err error
switch v := maybeTime.(type) {
case time.Time:
// If the type is time.Time, 'v' is now a time.Time variable.
- t = v
+ // t = v
+ return FormatTime(v), &v, err
case string:
// The type is string, so 'v' is a string variable.
t, err = doTimeString(v)
+ if t != nil {
+ return "", t, err
+ }
if err != nil {
guess = v
}
@@ -71,7 +79,8 @@ func TimeCheck(maybeTime any) (string, time.Time, error) {
// 'v' is a *timestamppb.Timestamp. We must convert it.
// It's also good to check if it's a valid timestamp.
if v.IsValid() {
- t = v.AsTime()
+ newt := v.AsTime()
+ return FormatTime(newt), &newt, nil
} else {
err = errors.New("pb time invalid")
}
@@ -79,7 +88,8 @@ func TimeCheck(maybeTime any) (string, time.Time, error) {
case timestamppb.Timestamp:
// Handle the less common case of a value type instead of a pointer.
if v.IsValid() {
- t = v.AsTime()
+ newt := v.AsTime()
+ return FormatTime(newt), &newt, nil
}
default:
err = errors.Join(err, NoTime)