strtotime

package module
v0.0.0-...-3136cf8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2020 License: MIT Imports: 6 Imported by: 9

README

strtotime

Image of PHP mascot being switched by Golang mascot

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.

Installation

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
}

Supported Formats

  • 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
Author

By Evan do Carmo

Documentation

Overview

Package strtotime provides a Go implementation of the popular PHP function. It translates English text to unix timestamps.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Parse

func Parse(s string, relativeTo int64) (int64, error)

Parse takes an English string - such as "next Friday 3 pm" - and an int64 unix timestamp to compare it with. It returns the translated English text into an int64 unix timestamp, or an error if the input cannot be recognized.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL