psx / datetime
PHP port of the Java JSR310 time API
Fund package maintenance!
chriskapp
Patreon
www.paypal.me/fusioapi
Installs: 187 911
Dependents: 3
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^5.0
README
About
PHP port of the Java JSR 310 time API. This package provides the following classes:
All classes are immutable, this means that every modification to the object returns a new instance containing the modification.
Usage
The following snippet shows some examples how you can use the API.
<?php use PSX\DateTime\Duration; use PSX\DateTime\LocalDate; use PSX\DateTime\LocalDateTime; use PSX\DateTime\LocalTime; use PSX\DateTime\Period; // date time $dateTime = LocalDateTime::parse('2023-03-22T22:56:00Z'); $dateTime = LocalDateTime::of(2023, 3, 22, 22, 56, 0); $dateTime->getYear(); // 2023 $dateTime->getMonth(); // Month::MARCH $dateTime->getMonthValue(); // 3 $dateTime->getDayOfMonth(); // 22 $dateTime->getDayOfWeek(); // 3 $dateTime->getHour(); // 22 $dateTime->getMinute(); // 56 $dateTime->getSecond(); // 0 $dateTime->plusDays(1); $dateTime->minusDays(1); $dateTime->withDayOfMonth(1); echo $dateTime->toString(); // 2016-03-28T23:27:00Z // date $date = LocalDate::parse('2023-03-22'); $date = LocalDate::of(2023, 3, 22); echo $date->toString(); // 2023-03-22 // time $time = LocalTime::parse('23:27:00'); $time = LocalTime::of(23, 27, 0); echo $time->toString(); // 23:27:00 // period $period = Period::parse('P1D'); $period = Period::of(1, 0, 0); echo $period->toString(); // P1D // duration $duration = Duration::parse('P1H'); $duration = Duration::of(1, 0, 0); echo $duration->toString(); // PT1H