Download the PHP package assoconnect/php-date without Composer
On this page you can find all versions of the php package assoconnect/php-date. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download assoconnect/php-date
More information about assoconnect/php-date
Files in assoconnect/php-date
Package php-date
Short Description PHP object to handle dates without time
License MIT
Homepage https://github.com/assoconnect/php-date/
Informations about the package php-date
The PHP AbsoluteDate object
Why this object?
PHP has the DateTime class to handle date and time but there is no object to just handle a date.
A DateTime instance represents a precise point in time and embeds a DateTimeZone instance to format the underlying timestamp to a more readable format.
On the other hand, a date may have two meanings:
- A period of 24h starting at 00:00:00 in the morning and ending at 23:59:59 in the evening. Actually a day may last less or more than 24 hours, for instance think about the day you advance your clock for the daylight saving time, but you get the idea: this date is actually an interval between two different
DateTimeinstances. This interval changes when you travel the world: for instance a date starts about 8 hours later in Los Angeles than in Paris. - A simple reference to a day with no critical care about the timezone. Think about your birthday, you won't change it wherever you travel on Earth: you keep only the current one from the place you were born at.
This PHP AbsoluteDate object represents a date according to this second use case.
Why not use the DateTime, then?
DateTime is an amazing class, and actually this AbsoluteDate class relies on it.
But you don't care about the time nor the timezone when you deal with this second use case.
Using DateTime may then lead to issues in case it is not handled properly.
It also helps to clearly identify if you are dealing with a real point in time or just a loose date.
How to use it?
This classes exposes two ways to instanciate a AbsoluteDate object:
- Using the constructor, you get a
AbsoluteDateinstance using the default date formatY-m-d. If none is given, then the current date in the UTC timezone is used. - Using
AbsoluteDate::createInTimezone(\DateTimeZone $timezone, \DateTimeInterface $datetime = null), you get the current date of the givenDateTimeinstance in the given timezone.
The AbsoluteDate::format(string $format) method can help you format the date as you want. It relies on the format method of the DateTime class thus it supports the same formats as the PHP date() function.
The AbsoluteDate::startsAt(\DateTimeZone $timezone) and AbsoluteDate::endsAt(\DateTimeZone $timezone) methods return a DateTime object in the given timezone. startsAt returns a DateTime at 00:00:00 whereas endsAt returns a DateTime at the end of the day (23:59:59).
Examples
Using AbsoluteDate with DateTime
Using AbsoluteDate with a date as string
Roadmap
- Create the
RelativeDateobject for the first use case exposingstartsAtandendsAtmethods