Skip to content
/ jalali Public
forked from morilog/jalali

This Package helps developers to easily work with Jalali (Shamsi or Iranian) dates in Laravel 5 applications, based on Jalali (Shamsi) DateTime class.

License

Notifications You must be signed in to change notification settings

hafezd/jalali

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status hafezdivandari/jalali

Installation Version 2.0

If you are using version < 2.0, please read old docs

Run the Composer update comand

$ composer require morilog/jalali

In your config/app.php add 'Morilog\Jalali\JalaliServiceProvider' to the end of the $providers array

'providers' => [

    Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
    Illuminate\Auth\AuthServiceProvider::class,
    ...
    Morilog\Jalali\JalaliServiceProvider::class,

],


'alias' => [
    ...
    'jDate' => Morilog\Jalali\Facades\jDate::class
]

Basic Usage

jDate

In version >= 1.1, You can use jdate() instead of jDate::forge();

forge([$str = ''])

// default timestamp is now
$date = \Morilog\Jalali\jDate::forge();
// OR
$date = jdate();

// pass timestamps
$date = jDate::forge(1333857600);
// OR
$date = jdate(1333857600);

// pass strings to make timestamps
$date = jDate::forge('last sunday');

// get the timestamp
$date = jDate::forge('last sunday')->time(); // 1333857600

// format the timestamp
$date = jDate::forge('last sunday')->format('%B %d، %Y'); // دی 02، 1391

// get a predefined format
$date = jDate::forge('last sunday')->format('datetime'); // 1391-10-02 00:00:00
$date = jDate::forge('last sunday')->format('date'); // 1391-10-02
$date = jDate::forge('last sunday')->format('time'); // 00:00:00

// amend the timestamp value, relative to existing value
$date = jDate::forge('2012-10-12')->reforge('+ 3 days')->format('date'); // 1391-07-24

// get relative 'ago' format
$date = jDate::forge('now - 10 minutes')->ago() // 10 دقیقه پیش
// OR
$date = jdate('now - 10 minutes')->ago() // 10 دقیقه پیش

jDateTime


checkDate($year, $month, $day, [$isJalali = true])

// Check jalali date
\Morilog\Jalali\jDateTime::checkDate(1391, 2, 30, true); // true

// Check jalali date
\Morilog\Jalali\jDateTime::checkDate(2016, 5, 7); // false

// Check gregorian date
\Morilog\Jalali\jDateTime::checkDate(2016, 5, 7, false); // true

toJalali($gYear, $gMonth, $gDay)

\Morilog\Jalali\jDateTime::toJalali(2016, 5, 7); // [1395, 2, 18]

toGregorian($jYear, $jMonth, $jDay)

\Morilog\Jalali\jDateTime::toGregorian(1395, 2, 18); // [2016, 5, 7]

strftime($format, [$timestamp = false])

jDateTime::strftime('Y-m-d', strtotime('2016-05-8'); // 1395-02-19

createDateTimeFromFormat($format, $jalaiTimeString)

$jdate = '1394/11/25 15:00:00';

// get instance of \DateTime
$dateTime = \Morilog\Jalali\jDatetime::createDatetimeFromFormat('Y/m/d H:i:s', $jdate);

createCarbonFromFormat($format, $jalaiTimeString)

$jdate = '1394/11/25 15:00:00';

// get instance of \Carbon\Carbon
$carbon = \Morilog\Jalali\jDatetime::createDatetimeFromFormat('Y/m/d H:i:s', $jdate);

convertNumbers($string)

$date = \Morilog\Jalali\jDateTime::strftime('Y-m-d', strtotime('2016-05-8'); // 1395-02-19
\Morilog\Jalali\jDateTime::convertNumbers($date); // ۱۳۹۵-۰۲-۱۹

Formatting

For help in building your formats, checkout the PHP strftime() docs.

Notes

The class relies on strtotime() to make sense of your strings, and strftime() to make the format changes. Just always check the time() output to see if you get false timestamps... which means the class couldn't understand what you were telling it.

License

About

This Package helps developers to easily work with Jalali (Shamsi or Iranian) dates in Laravel 5 applications, based on Jalali (Shamsi) DateTime class.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%