Pasoonate is a powerful library that provides advanced date-time methods and supports multiple calendars! ๐
composer install
./vendor/bin/phpunit๐ฅ Installation (via Composer)
composer require pasoonate/pasoonate-phpuse 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- ๐ Gregorian
- ๐ฎ๐ท Jalali
- ๐ Islamic
- โซ Shia
$today = pasoonate()->jalali()->format('Y/m/d');$gregorianDate = pasoonate()->jalali('1403/10/10')->gregorian()->format('Y-m-d');$jalaliDate = pasoonate()->gregorian('2025-01-18')->jalali()->format('Y/m/d');$startOfMonth = pasoonate()->jalali()->startOfMonth()->format('Y/m/d');
$endOfMonth = pasoonate()->jalali()->endOfMonth()->format('Y/m/d');$startOfYear = pasoonate()->jalali()->startOfYear()->format('Y/m/d');
$endOfYear = pasoonate()->jalali()->endOfYear()->format('Y/m/d');$isLeap = pasoonate()->jalali()->isLeapYear(); // Returns true or false$dayOfWeek = pasoonate()->jalali()->dayOfWeek(); // 0 = Saturday, 6 = Friday$weekNumber = pasoonate()->jalali()->weekOfYear();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()
echo $today->jalali('1399/01/15 11:22:00')->addYear(1)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/01/15 11:22:00echo $today->jalali()->addMonth(1)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/02/15 11:22:00echo $today->jalali()->addDay(3)->format('Y/m/d H:i:s');
// ๐๏ธ 1400/02/18 11:22:00echo $today->jalali()->addHour(4)->format('Y/m/d H:i:s');
// โณ 1400/02/18 15:22:00echo $today->jalali()->addMinute(2)->format('Y/m/d H:i:s');
// โฒ๏ธ 1400/02/18 15:24:00echo $today->jalali()->addSecond(35)->format('Y/m/d H:i:s');
// โฐ 1400/02/18 15:24:35echo $today->jalali()->subYear(1)->format('Y/m/d H:i:s');
// ๐
1399/02/18 15:24:35echo $today->jalali()->subMonth(1)->format('Y/m/d H:i:s');
// ๐ 1399/01/18 15:24:35echo $today->jalali()->subDay(3)->format('Y/m/d H:i:s');
// ๐๏ธ 1399/01/15 15:24:35... (and many more!)
๐ Pasoonate makes date handling in PHP and Laravel super easy! ๐ฅ
๐ก Give it a โญ on GitHub if you find it useful! ๐