Become a Patron!

My Amazon wishlist can be found here.

Life Line

What should 'tomorrow' be?

As you might know, I'm reimplementing PHP's date/time routines. At the moment PHP doesn't handle this well I think. But what should PHP's strtotime() do with "tomorrow". Always 24 hours which will make "2005-10-29 02:00am tomorrow" show "2005-10-30 01:00am" because time changes back to non-DST that day... but when it should always exactly a day "2005-04-02 02:30am tomorrow" does not exist although "2005-10-29 02:00am tomorrow" will then correctly show "2005-10-30 02:00am"... what is your opinion on this?

Shortlink

This article has a short URL available: https://drck.me/wstb-3yu

Comments

I guess I'm predudiced since I live in a country that doesnt have DST ;)

But the templation would be to ignore DST, in everything, except: $date->toStringLocale('%Y %d %h'); $date->parseWithLocale('12/....');

But I suspect it's not a simple as that...

Personally, I assume that when you ask for 'tomorrow,' what you'll get back is a date, not date-time. But maybe I'm the only one.

I think that it should return tomorrows date at midnight rather than saying date + 24 hours. If I remember correctly to my perl days Date::Manip worked that way which was quite useful.

I agree with Jacques - if yo always get a date at midnight, the results are much more predictable (an thus easier to work with). It also goes in the direction that Ryan mentioned about only getting back a date.

Hi Derick!

I guess this case is pretty rare (it's just 2 hours per year, that get lost), therefore, I'd suggest to move to 3:00 when the time between 2 and 3 does not exist.

Another possibility would be to make it configurable how to deal with the DST switch times (eg. "move to next hour", "move to last hour", "error",...).

Regards, Toby

Add Comment

Name:
Email:

Will not be posted. Please leave empty instead of filling in garbage though!
Comment:

Please follow the reStructured Text format. Do not use the comment form to report issues in software, use the relevant issue tracker. I will not answer them here.


All comments are moderated