https://github.com/apioo/psx-datetime
PHP port of the Java JSR 310 time API
https://github.com/apioo/psx-datetime
date datetime jsr-310 php time
Last synced: 4 months ago
JSON representation
PHP port of the Java JSR 310 time API
- Host: GitHub
- URL: https://github.com/apioo/psx-datetime
- Owner: apioo
- License: apache-2.0
- Created: 2016-03-31T12:46:21.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-10-03T12:08:04.000Z (4 months ago)
- Last Synced: 2025-10-03T14:23:02.193Z (4 months ago)
- Topics: date, datetime, jsr-310, php, time
- Language: PHP
- Homepage:
- Size: 107 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# DateTime
PHP port of the Java JSR 310 time API. This package provides the following classes:
| Class | Description |
|---------------|------------------------------------------------------------------------------------------------------|
| Duration | A time-based amount of time, such as '34.5 seconds' |
| LocalDate | A date without a time-zone in the ISO-8601 calendar system, such as 2007-12-03 |
| LocalDateTime | A date-time without a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30 |
| LocalTime | A time without a time-zone in the ISO-8601 calendar system, such as 10:15:30 |
| Period | A date-based amount of time in the ISO-8601 calendar system, such as '2 years, 3 months and 4 days' |
| DayOfWeek | A day-of-week, such as 'Tuesday' |
| Month | A month-of-year, such as 'July' |
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
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
```