Giter Site home page Giter Site logo

strtotime's Introduction

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed.

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

strtotime's People

Contributors

carmo-evan avatar jpitoniak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

strtotime's Issues

Implement weekdayOf format

Test Cases

Input: second Friday of December 2019
Output: 1576195200, equivalent to 13/12/2019 00:00:00

format test for timestamp is failing

AIL: TestFormats/timestamp (0.00s)
        /home/zubair/projects/forked/strtotime-go/format_test.go:69: Unix stamp should've been 1569600000 but it was 1569573000

Implement backOrFrontOf Format

Test Cases

Input: November 15 2019 back of 7pm.
Output: 1573845300 equivalent to 15/11/2019 19:15:00.

Input: November 15 2019 front of 7pm.
Output: 1573843500 equivalent to 15/11/2019 18:45:00.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.