pasoonate/pasoonate-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 pasoonate/pasoonate-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 6.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-11-11