1.1.2 2025-09-06 20:13 UTC

This package is auto-updated.

Last update: 2025-09-06 20:13:44 UTC


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"