๐
PHP & Laravel Calendar - Pasoonate
Pasoonate is a powerful library that provides advanced date-time methods and supports multiple calendars! ๐, (*1)
๐ Running Tests
composer install
./vendor/bin/phpunit
๐ฅ Installation (via Composer)
composer require pasoonate/pasoonate-php
๐ฏ Usage
use Pasoonate\Pasoonate;
function pasoonate(): CalendarManager
{
return Pasoonate::make();
}
// Set timestamp ๐
$date = pasoonate()->setTimestamp(1333857600)->jalali()->format('yyyy-MM-dd');
// Convert Jalali to Gregorian ๐
$datetime = pasoonate()->jalali('1398/02/01 20:00:00')->gregorian()->getDatetime();
// Get today's date in different calendars ๐
$date = pasoonate()->jalali()->format('yyyy-MM-dd'); // 1403-10-29 ๐ท๏ธ
$date = pasoonate()->gregorian()->format('yyyy-MM-dd'); // 2025-01-18 ๐
$date = pasoonate()->islamic()->format('yyyy-MM-dd'); // 1446-07-18 ๐
$date = pasoonate()->shia()->format('yyyy-MM-dd'); // 1446-07-17 โจ
// Date conversion ๐
$date = pasoonate()->jalali()->addDay(2)->gregorian()->format('yyyy-MM-dd');
// Parse and format dates ๐
pasoonate()->jalali()->parse('yyyy-MM-dd', '1403-10-10')->addDay(3)->format('yyyy-MM-dd'); //1403-10-13
๐ Supported Calendars
- ๐
Gregorian
- ๐ฎ๐ท Jalali
- ๐ Islamic
- โซ Shia
๐ Commonly Used Date Functions in Projects
โ
Get Today's Date
$today = pasoonate()->jalali()->format('Y/m/d');
๐ Convert Jalali to Gregorian
$gregorianDate = pasoonate()->jalali('1403/10/10')->gregorian()->format('Y-m-d');
๐ Convert Gregorian to Jalali
$jalaliDate = pasoonate()->gregorian('2025-01-18')->jalali()->format('Y/m/d');
โณ Get Start and End of the Month
$startOfMonth = pasoonate()->jalali()->startOfMonth()->format('Y/m/d');
$endOfMonth = pasoonate()->jalali()->endOfMonth()->format('Y/m/d');
๐ฐ๏ธ Get Start and End of the Year
$startOfYear = pasoonate()->jalali()->startOfYear()->format('Y/m/d');
$endOfYear = pasoonate()->jalali()->endOfYear()->format('Y/m/d');
๐ Check Leap Year
$isLeap = pasoonate()->jalali()->isLeapYear(); // Returns true or false
๐๏ธ Get Day of the Week
$dayOfWeek = pasoonate()->jalali()->dayOfWeek(); // 0 = Saturday, 6 = Friday
๐
Get Week Number of the Year
$weekNumber = pasoonate()->jalali()->weekOfYear();
๐ Basic Methods
-
getTimestamp()
๐ฐ๏ธ
-
getTimezoneOffset()
๐
-
getDatetime()
โณ
-
getDate()
๐
-
getTime()
โฐ
-
getYear()
๐ฏ
-
getMonth()
๐
-
getDay()
๐ท๏ธ
-
getHour()
โณ
-
getMinute()
โฒ๏ธ
-
getSecond()
๐
-
setTimestamp($timestampAsSeconds)
๐
-
setTimezoneOffset($offsetAsMinutes)
๐๏ธ
-
setDatetime($year, $month, $day, $hour, $minute, $second)
๐๏ธ
setDate($year, $month, $day)
setTime($hour, $minute, $second)
setYear($year)
setMonth($month)
setDay($day)
setHour($hour)
setMinute($minute)
setSecond($second)
setUTCDatetime($year, $month, $day, $hour, $minute, $second)
setUTCDate($year, $month, $day)
setUTCTime($hour, $minute, $second)
setUTCYear($year)
setUTCMonth($month)
setUTCDay($day)
setUTCHour($hour)
setUTCMinute($minute)
setUTCSecond($second)
-
dayOfWeek()
(from 0 for Saturday to 6 for Friday)
dayOfYear()
weekOfMonth()
weekOfYear()
โ Addition & โ Subtraction Methods
๐
Add Year
echo $today->jalali('1399/01/15 11:22:00')->addYear(1)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/01/15 11:22:00
๐ Add Month
echo $today->jalali()->addMonth(1)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/02/15 11:22:00
๐
Add Day
echo $today->jalali()->addDay(3)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/02/18 11:22:00
โณ Add Hour
echo $today->jalali()->addHour(4)->format('Y/m/d H:i:s');
// โณ 1400/02/18 15:22:00
โฒ๏ธ Add Minute
echo $today->jalali()->addMinute(2)->format('Y/m/d H:i:s');
// โฒ๏ธ 1400/02/18 15:24:00
โฐ Add Second
echo $today->jalali()->addSecond(35)->format('Y/m/d H:i:s');
// โฐ 1400/02/18 15:24:35
๐
Subtract Year
echo $today->jalali()->subYear(1)->format('Y/m/d H:i:s');
// ๐
1399/02/18 15:24:35
๐ Subtract Month
echo $today->jalali()->subMonth(1)->format('Y/m/d H:i:s');
// ๐ 1399/01/18 15:24:35
๐๏ธ Subtract Day
echo $today->jalali()->subDay(3)->format('Y/m/d H:i:s');
// ๐๏ธ 1399/01/15 15:24:35
... (and many more!), (*2)
๐ Pasoonate makes date handling in PHP and Laravel super easy! ๐ฅ, (*3)
๐ก Give it a โญ on GitHub if you find it useful! ๐, (*4)