Parsing dates
For some reason I started maintaining PHP's strtotime() function, which parses a strings containing a date/time representation, such as "2004-04-18 17:59 CEST", "April 18, 2004" and the like. With so many different formats one guy in the past crafted a parser for this basing the syntax on GNU tar . The original function had some problems, or was missing some formats (such as the highly useful ISO 8601 formats) and during time this original parser was extended. it might have been a nice and simple bison parser, with a hand craften lexer, but I can assure you that it is now shitty, buggy and totaly unmaintainable. Nobody knows what formats it's supposed to parse either.
With those four problems in my head I decided to redo this shitty old and messy parser by using re2c to do the parsing. Their is a problem though as I don't know which format it's supposed to parse at all (except the GNU tar things and ISO 8601 stuff) so I'm asking you guys which formats it should be able to parse, and which formats you already parse with the strtotime() function.
Comments
This one's odd because the time comes before the year, but it's the locale standard.
$ date +"%c" Sun Apr 18 18:36:57 2004
- These are the only strtotime formats I already use:
-
strtotime ("+20 minutes") strtotime ("+3 month") strtotime ("Monday") strtotime ("2001-10-24 15:22:13")
I think it would be good to be able to parse the default timstamp and date formats for postgresql, mysql and probably oracle and mssql. I only use postgresql so I can only point you here:
http://www.postgresql.org/docs/7.4/static/datatype-datetime.html
Parsing anything that a database could spit out would be great...
culley
Like culley's suggestion regarding database date formats, consider also typical
webserver log date formats. For example, for Apache's logs: http://httpd.apache.org/docs/logs.html http://httpd.apache.org/docs-2.0/logs.html
Also, how about operating system timestamps: http://weblogs.asp.net/oldnewthing/archive/2003/09/05/54806.aspx
There may be some good clues in the GNU C Library: http://www.gnu.org/software/libc/manual/html_node/Calendar-Time.html#Calendar%20Time
Maybe some clues here in POSIX Locale: http://www.opengroup.org/onlinepubs/007908799/xbd/locale.html#tag_005_003_005
Here are some additional database date and time function format references: http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html http://otn.oracle.com/tech/blaf/specs/commonFormats.html http://www.sswug.org/searchresults.asp?keywordstofind2=date%20time
For me, the most useful things about strftime() are doing relative date math ("+2 days") ("1 sunday ago") that properly accounts for DST switches and stuff based on days of the week ("next Monday").
Life Line
I've finished reading Children of Memory, the third book in the series.
Another interesting take on forms of intelligent life.
A fourth one is going to get released later this year.
Updated a post_box, a beauty shop, and a restaurant; Confirmed 2 clothes shops, 2 pet shops, and a restaurant
I walked 5.9km in 1h40m39s
Updated a bicycle_parking
Updated 2 waste_baskets
I walked 7.9km in 1h37m12s
Created 3 waste_baskets; Updated 3 bus_stops, 2 benches, and 2 waste_baskets
I walked 8.1km in 1h25m53s
I walked 1.2km in 9m31s
I walked 9.4km in 1h39m05s
Merge branch 'xdebug_3_5'
Merged pull request #1071
Fixed issue #2411: Native Path Mapping is not applied to the initial …
Created 2 waste_baskets; Updated 3 waste_baskets, 2 benches, and 2 other objects; Deleted a waste_basket
I walked 7.9km in 1h45m36s
RE: https://phpc.social/@phpc_tv/116274041642323081
Now that phpc.tv and phpc.social are part of the same umbrella, I've upped my yearly contributions to their Open Collective: https://opencollective.com/phpcommunity/projects/phpc-social
Merge branch 'xdebug_3_5'
Merged pull request #1070
I walked 7.2km in 1h10m26s
Fixed issue #2405: Handle minimum path in .xdebug directory discovery
I've published a new blog post: "Human Creations", on the difference in content generation by LLMs, and the creation of text, art and code by humans.
You can find it at https://derickrethans.nl/human-creations.html or at @blog
I walked 7.8km in 1h38m32s
RE: https://phpc.social/@afilina/116274024588235234
It's good to see that more and more people are realising that the Web can be for-good, without all the enshittification.
That's why I'm happy to see endeavours like phpc.tv springing up, and helping out where I can.
Taking back the control of how the Web is for people, by people, without big tech making it all shit.
Created a waste_basket; Updated 5 crossings and a bicycle_parking
I walked 10.7km in 2h35m10s


Shortlink
This article has a short URL available: https://drck.me/parsing-dates-37r