pasoonate/pasoonate-php
Composer 安装命令:
composer require pasoonate/pasoonate-php
包简介
README 文档
README
Pasoonate is a powerful library that provides advanced date-time methods and supports multiple calendars! 🚀
🛠 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!)
🚀 Pasoonate makes date handling in PHP and Laravel super easy! 🔥
💡 Give it a ⭐ on GitHub if you find it useful! 🌟
pasoonate/pasoonate-php 适用场景与选型建议
pasoonate/pasoonate-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6.44k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2018 年 11 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「calendar」 「persian calendar」 「hijri calendar」 「Gregorian Calendar」 「Date Conversion」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 pasoonate/pasoonate-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 pasoonate/pasoonate-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 pasoonate/pasoonate-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Arabic php utilities from Khaled Al-Sham'aa's library http://ar-php.org/
A modern PHP library for generating iCalendar v2.0 events
A powerful event calendar Tool for Laravel's Nova 5.
Convert eloquent date attributes to jalali (Persian) dates on the fly. (supports model propery access, toJson, toString and toArray).
Check for holidays - localeaware
Date converter from Jalali to Georgian and vice versa. It has Carbon instance inside and it's Laravel friendly.
统计信息
- 总下载量: 6.44k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-11-11