Time

The Time registry provides tools to manage and manipulate dates, times, and time-related calculations, making it easy to handle time-based data in your projects.

You can easily import all the functions from the time registry by including the following import statement in your code

import "github.com/go-sprout/sprout/registry/time"

date

The function formats a given date or the current time into a specified format string.

{{ "2023-05-04T15:04:05Z" | date "Jan 2, 2006" }} // Output: "May 4, 2023"

dateInZone

The function formats a given date or the current time into a specified format string for a specified timezone.

{{ dateInZone "Jan 2, 2006", "2023-05-04T15:04:05Z", "UTC" }} // Output: "May 4, 2023"
{{ dateInZone "Jan 2, 2006", "2023-05-04T15:04:05Z", "invalid" }} // Error

duration

The function converts a given number of seconds into a human-readable duration string.

{{ 3661 | duration }} // Output: "1h1m1s"

dateAgo

The function calculates the time elapsed since a given date.

{{ "2023-05-04T15:04:05Z" | dateAgo }} // Output: "4m"

dateAgo can receive multiples input types like:

  • time.Time object (object or pointer)

  • int, int32, int64 converted as Unix

now

The function returns the current time.

{{ now }} // Output: "2023-05-07T15:04:05Z"

unixEpoch

The function returns the Unix epoch timestamp for a given date.

{{ now | unixEpoch }} // Output: "1683306245"

dateModify

The function adjusts a given date by a specified duration, returning the modified date. If the duration format is incorrect, it returns the original date without any changes, in case of must version, an error are returned.

{{ "2024-05-04T15:04:05Z" | dateModify "48h" }}
// Output: "2024-05-06T15:04:05Z", nil
{{ "2024-05-04T15:04:05Z" | dateModify "0z+" }}
// Output: "0000-00-00T00:00:00Z", error

durationRound

The function rounds a duration to the nearest significant time unit, such as years or seconds.

{{ "9600h" | durationRound }} // Output: "1y"
{{ "960h" | durationRound }} // Output: "1mo"
{{ "192h" | durationRound }} // Output: "8d"
{{ "3600s" | durationRound }} // Output: "1h"
{{ "300s" | durationRound }} // Output: "5m"
{{ "61s" | durationRound }} // Output: "1m"
{{ "59s" | durationRound }} // Output: "59s"

htmlDate

The function formats a date into the standard HTML date format (YYYY-MM-DD).

{{ "2023-05-04T15:04:05Z" | htmlDate }} // Output: "2023-05-04"

This basically call dateInZone("2006-01-02", date, "Local")

htmlDateInZone

The function formats a date into the standard HTML date format (YYYY-MM-DD) based on a specified timezone.

{{ "2023-05-04T15:04:05Z", "UTC" | htmlDateInZone }} // Output: "2023-05-04"

This basically call dateInZone("2006-01-02", date, zone)

Last updated