Golang implementation of strtotime
, a very popular PHP function for converting English text to a timestamp. This is an exercise inspired on this Javascript implementation.
strtotime
uses Go modules and is compatible with Go 1.12 upwards. Install using go get
.
go get github.com/carmo-evan/strtotime
After importing it, the strtotime
package will expose only one method: Parse
. It takes two arguments - an English string describing some point in time; and a unix timestamp that should represent the current time, or another referencial point in time you want to use.
Try it on the playground.
package main
import (
"fmt"
"github.com/carmo-evan/strtotime"
"time"
)
func main() {
//Now is Nov 17, 2019
u, err := strtotime.Parse("next Friday 3pm", time.Now().Unix())
if err != nil {
// crash and burn
}
t := time.Unix(u,0)
fmt.Println(t)
//output: 2019-11-22 15:00:00 +0000 UTC
}
- yesterday
- now
- noon
- midnightOrToday
- tomorrow
- timestamp
- firstOrLastDay
- backOrFrontOf (Thank you evalevanto!)
- weekdayOf
- mssqltime
- timeLong12
- timeShort12
- timeTiny12
- soap
- wddx
- exif
- xmlRpc
- xmlRpcNoColon
- clf
- iso8601long
- dateTextual
- pointedDate4
- pointedDate2
- timeLong24
- dateNoColon
- pgydotd
- timeShort24
- iso8601noColon
- dateSlash
- american
- americanShort
- gnuDateShortOrIso8601date2
- iso8601date4
- gnuNoColon
- gnuDateShorter
- pgTextReverse
- dateFull
- dateNoDay
- dateNoDayRev
- pgTextShort
- dateNoYear
- dateNoYearRev
- isoWeekDay
- relativeText
- relative
- dayText
- relativeTextWeek
- monthFullOrMonthAbbr
- tzCorrection
- ago
- gnuNoColon2
- year4
- whitespace