simbiat / sand-clock
Collection of functions to present time-related objects
Requires
- php: ^8.3
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-12-02 19:08:55 UTC
README
Set of functions for working with date/time.
How to use
Time Formatting
echo \Simbiat\SandClock::format(1234567890);
will output 2009-02-13 23:31:30.000000
You can format to your liking
echo \Simbiat\SandClock::format(1234567890, 'H:i');
to get 23:31
Seconds to time units left
echo \Simbiat\SandClock::seconds('31536050000829051');
will output 1 aeon 1 millennium 5 centuries 8 decades 5 years 6 months 1 week 1 day 7 hours 10 minutes 52 seconds
You can output the same in 'short' format (without text), for example
echo \Simbiat\SandClock::seconds('31536050000829051', false);
will output 1:1:5:8:5:6:1:1:7:10:52
This function is multilingual and at the moment supports 8 languages: Deutsch (de), English (en), Spanish (es), French (fr), Italian (it), Japanese (jp), Russian (ru), Finnish (fi). You can switch it like this:
echo \Simbiat\SandClock::seconds('31536050000829051', true, 'jp');
will output 1 ion 1 sennenki 5 seiki 8 tōnen 5 toshi 6 tsuki 1 shū 1 hi 7 jikan 10 bun 52 byō
You can also pass iso: true
in order to generate the output compliant with ISO 8601 duration format like P51Y8M0W4DT8H20M31S
Timezone conversion
If you want to convert timezone of a timestamp presented as integer, string, \DateTime
or \DateTimeImmutable
you can make a call like this:
\Simbiat\SandClock::convertTimezone('now', 'Europe/Helsinki', 'UTC')
This will return a respective \DateTime
object, which you can then manipulate further. If you originally provide a \DateTime
or \DateTimeImmutable
object, you can use null
for $from
(2nd argument), since it will not be used in this case (empty string will throw an exception).