Persian (aka Jalali, Shamsi or Hijri Shamsi) calendar library using php intl extension
what PDate can do?
- convert Gregorian date to persian date
- convert Persian date to gregorian date
- get current Persian date
- check Persian leap year
- check Gregorian leap year
- get start and end of each Persian month in gregorian date (can use for Jalali/Persian archive or monthly report)
default config is
[
'dateTime' => null,
'y' => null,
'm' => null,
'd' => null,
'h' => 0,
'i' => 0,
's' => 0,
'inFormat' => 'Y-m-d',
'outFormat' => 'y-M-d',
'local' => null,
'calendar' => 'persian',
'timeZone' => null,
];
if you set dateTime, then y, m, d have no affect
inFormat is only available when you set value for dateTime parameter and use g2p() (Gregorian to Persian) method.
if you want to pass date and/or outFormat directy to g2p() and p2g() you have to use one of following chatecters as delimiter between date, month, day, hour, minute and second:
-, :, (white space), /
examples of acceptable formats:
2018-10-9
2018/5/11 18:30:58
1397/5/11 18:30
you can set pArchive() last output date by setting $tillNow parameter to false and set third argument with date string(Y-m-d) or date array [Y, m,d] (in Persian date).
by default $tillNow is true
example:
$pDate = new PDate();
$archive = $pDate->pArchive(3, false, [1397,4,31]); //start of archive is on 1397-1-1, end on 1397-4/31
var_dump($archive);output:
array (size=3)
0 =>
array (size=4)
0 => string '2018-6-22' (length=9) //1397-4-1
1 => string '2018-7-22' (length=9) //1397-4-31
'year' => int 1397
'month' => int 4
1 =>
array (size=4)
0 => string '2018-5-22' (length=9) //1397-3-1
1 => string '2018-6-21' (length=9) //1397-3-31
'year' => int 1397
'month' => int 3
2 =>
array (size=4)
0 => string '2018-4-21' (length=9) //1397-2-1
1 => string '2018-5-21' (length=9) //1397-2-31
'year' => int 1397
'month' => int 2
possible outFormat values are documented at
[https://unicode-org.github.io/icu/userguide/format_parse/datetime/).
possible inFormat values are documented at
http://uk3.php.net/manual/en/function.date.php.