krzysztofzylka / date
Date library
1.1.2
2025-09-06 20:13 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.6
README
composer require krzysztofzylka/date
Create instance
$date = new \Krzysztofzylka\Date\Date();
Static methods
Create instance
\Krzysztofzylka\Date\Date::create() \Krzysztofzylka\Date\Date::create(time()) \Krzysztofzylka\Date\Date::create(date('Y-m-d H:i:s')) \Krzysztofzylka\Date\Date::create(new DateTime())
Method
Gets
Get time
$date->getTime()
Get date
$date->getDate()
Get day
$date->getDay()
Get month
$date->getMonth()
Get year
$date->getYear()
Get ISO8601 date format
$date->getISO8601()
Date difference
$date = \Krzysztofzylka\Date\Date::create(); $date2 = \Krzysztofzylka\Date\Date::create($date)->addDay(1); var_dump($date->getDifference($date2)); //['years' => 0, 'months' => 0, 'days' => 1, 'hours' => 0, 'minutes' => 0, 'seconds' => 0]
Get weekday difference
$date->getWeekdayDifference($date)
Sets
Set date
$date->set(null) $date->set(time()) $date->set(date('Y-m-d H:i:s'))
Format
Change default format (Y-m-d H:i:s)
$date->format($format)
Add
Add second to date
$date->addSecond($seconds)
Add minute to date
$date->addMinute($minutes)
Add hours to date
$date->addHour($hours)
Add day to date
$date->addDay($days)
Add weeks to date
$date->addWeek($weeks)
Add month to date
$date->addMonth($months, $fixCalculate)
Example
$date = new \Krzysztofzylka\Date\Date('2024-03-31'); $date->addMonth(1); echo $date->getDate('Y-m-d'); //2024-04-30 $date = new \Krzysztofzylka\Date\Date('2024-03-31', false); $date->addMonth(1); echo $date->getDate('Y-m-d'); //2024-05-01
Add year to date
$date->addYear($years)
Subtract
Subtract second from date
$date->subSecond($seconds)
Subtract minute from date
$date->subMinute($minutes)
Subtract hours from date
$date->subHour($hours)
Subtract day from date
$date->subDay($days)
Subtract weeks from date
$date->subWeek($weeks)
Subtract month from date
$date->subMonth($months)
Subtract year from date
$date->subYear($years)
Check
Date is before
$date->isBefore($date)
Date is after
$date->isAfter($date)
Is equal
$date->isEqual($date)
Start of day
$date->startOfDay()
End of day
$date->endOfDay()
Is weekend
$date->isWeekend()
Is weekday
$date->isWeekday()
is leap year
$date->isLeapYear()
Utils
Get date month difference
\Krzysztofzylka\Date\DateUtils::dateMonthDifference($dateFrom, $dateTo)
Get simple date
\Krzysztofzylka\Date\DateUtils::getSimpleDate() \Krzysztofzylka\Date\DateUtils::getSimpleDate(true) //with microseconds
Get seconds to date
\Krzysztofzylka\Date\DateUtils::getSecondsToDate($seconds)
Date difference
$date = \Krzysztofzylka\Date\Date::create(); $date2 = \Krzysztofzylka\Date\Date::create($date)->addDay(1); var_dump(\Krzysztofzylka\Date\DateUtils::getDifference($date, $date2)); //['years' => 0, 'months' => 0, 'days' => 1, 'hours' => 0, 'minutes' => 0, 'seconds' => 0]
Polish Locale
Klasa PolishLocale
zawiera polskie nazwy miesięcy i dni tygodnia w różnych formatach.
Stałe
Miesiące
use Krzysztofzylka\Date\Locale\PolishLocale; // Skrócone nazwy miesięcy PolishLocale::MONTHS_SHORT; // [1 => 'Sty', 2 => 'Lut', ...] // Pełne nazwy miesięcy PolishLocale::MONTHS_LONG; // [1 => 'Styczeń', 2 => 'Luty', ...]
Dni tygodnia (Niedziela = 0)
// Skrócone nazwy dni (0=Sobota, 1=Niedziela, 2=Poniedziałek, ...) PolishLocale::WEEKDAYS_SHORT; // [2 => 'Pon', 3 => 'Wto', ...] // Pełne nazwy dni (0=Sobota, 1=Niedziela, 2=Poniedziałek, ...) PolishLocale::WEEKDAYS_LONG; // [2 => 'Poniedziałek', 3 => 'Wtorek', ...]
Dni tygodnia (Poniedziałek = 0)
// Skrócone nazwy dni (0=Poniedziałek, 1=Wtorek, ...) PolishLocale::WEEKDAYS_SHORT_MONDAY_ZERO; // [0 => 'Pon', 1 => 'Wto', ...] // Pełne nazwy dni (0=Poniedziałek, 1=Wtorek, ...) PolishLocale::WEEKDAYS_LONG_MONDAY_ZERO; // [0 => 'Poniedziałek', 1 => 'Wtorek', ...]
Metody
Pobieranie nazwy miesiąca
use Krzysztofzylka\Date\Locale\PolishLocale; echo PolishLocale::getMonthName(1); // "Styczeń" echo PolishLocale::getMonthName(1, true); // "Sty"
Pobieranie nazwy dnia (Niedziela = 0)
echo PolishLocale::getDayName(1); // "Niedziela" echo PolishLocale::getDayName(2, true); // "Pon"
Pobieranie nazwy dnia (Poniedziałek = 0)
echo PolishLocale::getDayNameMondayZero(0); // "Poniedziałek" echo PolishLocale::getDayNameMondayZero(0, true); // "Pon"
Konwersja między konwencjami numerowania
// Z Niedziela=0 na Poniedziałek=0 $mondayZero = PolishLocale::convertSundayZeroToMondayZero(1); // 0 (Poniedziałek) // Z Poniedziałek=0 na Niedziela=0 $sundayZero = PolishLocale::convertMondayZeroToSundayZero(0); // 1 (Poniedziałek)
Przykład użycia
use Krzysztofzylka\Date\Date; use Krzysztofzylka\Date\Locale\PolishLocale; $date = Date::create('2024-03-15'); // Piątek $dayOfWeek = (int)$date->getDate('w'); // 5 (Piątek w konwencji Niedziela=0) echo PolishLocale::getDayName($dayOfWeek); // "Piątek" echo PolishLocale::getMonthName($date->getMonth()); // "Marzec"