PHPackages                             m-jch/date - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. m-jch/date

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

m-jch/date
==========

Fix all needs to date in php

v1.1.3(6y ago)346605[1 issues](https://github.com/m-jch/Date/issues)MITPHP

Since Jun 23Pushed 6y ago4 watchersCompare

[ Source](https://github.com/m-jch/Date)[ Packagist](https://packagist.org/packages/m-jch/date)[ RSS](/packages/m-jch-date/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (5)DependenciesVersions (6)Used By (0)

Date
====

[](#date)

Fix all needs to date in php

Install
-------

[](#install)

Add below line to `require` section in `composer.json`:

```
"m-jch/date" : "~1"

```

Run `composer update`

Tutorial
--------

[](#tutorial)

This package contains 2 class, `Jalali` and `Date`. `Jalali` class responsible for Jalali (shamsi) date time and `Date` class responsible for Gregorian date time.

All below examples should be run in `Jalali` or `Date` class.

All format listed in PHP [`date`](http://php.net/manual/en/function.date.php) function support.

We want to implements most of Carbon PHP class.

### Include Classes

[](#include-classes)

```
use Date\Date;
use Date\Jalali;
```

### Examples

[](#examples)

#### Creators

[](#creators)

```
$date = new Jalali('1395/04/10 23:10:05');
$date = new Jalali('۱۳۹۵/۰۴/۱۰ ۲۳:۱۰:۰۵');
$date->format('Y-m-d H:i:s');

echo new Jalali('1395-04-10');

// You can use make static method instead of new instance
// Below examples has same results
$date = (new Jalali('1395/04/10 23:10:05'))->subDays(4);
$date = Jalali::make('1395/04/10 23:10:05')->subDays(4);

echo Jalali::now();
echo Jalali::yesterday();
echo Jalali::tomorrow();

echo Jalali::create(1394, 05, 04, 12, 45, 23);
echo Jalali::createDate(1394, 05, 04);
echo Jalali::createTime(12, 45, 23);
```

#### Converters

[](#converters)

```
// Jalali to Gregorian
$date = new Jalali('1373/06/05 23:10:05');
echo $date->toGregorian();

$date = new Jalali('1373/06/05 23:10:05');
echo $date->tog()->format('Y-m'); // An aliases for toGregorian method

// Gregorian to Jalali
$date = new Date('2012-06-05 20:05:01');
echo $date->toJalali();

$date = new Date('2012-06-05 20:05:01');
echo $date->toj(); // An aliases for toJalali method
```

#### Modifiers

[](#modifiers)

Consider you can send negative number to `add*` methods, instead of using `sub*` methods.

```
echo Jalali::now()->startOfMonth();
echo Jalali::now()->endOfMonth();

echo Jalali::now()->startOfDay();
echo Jalali::now()->endOfDay();

echo Jalali::now()->addYears(2);
echo Jalali::now()->subYears(1);

echo Jalali::now()->addMonths(2);
echo Jalali::now()->subMonths(1);

echo Jalali::now()->addWeeks(3);
echo Date::now()->subWeeks(3);

echo Jalali::now()->addDays(1);
echo Jalali::now()->subDays(5);

echo Jalali::now()->addHours(2);
echo Jalali::now()->subHours(1);

echo Jalali::now()->addMinutes(10);
echo Jalali::now()->subMinutes(5);

echo Jalali::now()->addSeconds(14);
echo Jalali::now()->subSeconds(50);
```

#### Customize

[](#customize)

```
// echo as farsi numbers
echo Jalali::now()->fa()->subDays(4);
echo (new Jalali)->addDays(5)->fa('Y-m-d l'); // Can use just fa() instead of fa()->format()
```

#### Comparisons

[](#comparisons)

All comparisons based on Gregorian date, so you can compare two date with different type of class.

```
$date1 = new Jalali('1395-07-12');
$date2 = new Jalali('1395-10-05');

$date1->equalTo($date2);
$date1->eq($date2);

$date1->notEqualTo($date2);
$date1->ne($date2);

$date1->greaterThan($date2);
$date1->gt($date2);

$date1->greaterThanOrEqualTo($date2);
$date1->gte($date2);

$date1->lessThan($date2);
$date1->lt($date2);

$date1->lessThanOrEqualTo($date2);
$date1->lte($date2);

$now->between($date1, $date2);
$now->bw($date1, $date2);

$now->betweenEqual($date1, $date2);
$now->bwe($date1, $date2);
```

#### Differences

[](#differences)

You can not send first parameter or send it null, for calculate difference from current datetime.

If second parameter is true, return base on absolute, otherwise base on difference, default is true

We're not sure about `diffInYears`, `diffInMonths`, `diffInWeeks` and `diffInDays` in Jalali date, if you have any bug, please report it.

```
$date1->diffInYears($date2);
$date1->diffInMonths($date2);
$date1->diffInWeeks($date2);
$date1->diffInDays();
$date1->diffInHours($date2);
$date1->diffInMinutes($date2, true);
$date1->diffInSeconds($date2, false);
```

#### Timestamp

[](#timestamp)

```
// Create from timestamp
$date = new Jalali(1466664181);
$date = new Date(1466664181);
$date = Jalali::createFromTimestamp(1466664181);

// Get timestamp
$date->getTimestamp();
$date->format('U');

// Set timestamp
$date->setTimestamp(1466664181);
```

Frameworks
----------

[](#frameworks)

### Laravel5

[](#laravel5)

Add below codes to `aliases` array in `app.php` config file.

```
'Jalali' => Date\Jalali::class,
'Date'   => Date\Date::class
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 98% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~270 days

Total

5

Last Release

2533d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8c043a72a1576f7a46a2bdf2cd58340156cd913e31f396f97e622a79dcf67482?d=identicon)[m-jch](/maintainers/m-jch)

---

Top Contributors

[![m-jch](https://avatars.githubusercontent.com/u/3691463?v=4)](https://github.com/m-jch "m-jch (50 commits)")[![gladx](https://avatars.githubusercontent.com/u/9036557?v=4)](https://github.com/gladx "gladx (1 commits)")

---

Tags

datetimegregorianjalaliphp

### Embed Badge

![Health badge](/badges/m-jch-date/health.svg)

```
[![Health](https://phpackages.com/badges/m-jch-date/health.svg)](https://phpackages.com/packages/m-jch-date)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
