Last active
January 15, 2020 09:02
-
-
Save faridfr/da19aed52452ec8e0c01ccc030d5fe85 to your computer and use it in GitHub Desktop.
laravel morilog jalali to gregorian helper functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// work with ( https://github.com/morilog/jalali ) , to send jalali datetime and get gregorian datetime | |
// example : jalali_to_gregorian('1397-01-29 20:20:20) | |
function jalali_to_gregorian ($jalali){ | |
$miladi_array = \Morilog\Jalali\jDateTime::toGregorian( | |
datetime_slice($jalali,'year'), | |
datetime_slice($jalali,'month'), | |
datetime_slice($jalali,'day') | |
); | |
return implode('-',$miladi_array)." ".datetime_slice($jalali,'time'); | |
} | |
function convert_numbers_to_persian($string) { | |
$persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']; | |
$arabic = ['٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١','٠']; | |
$num = range(0, 9); | |
$convertedPersianNums = str_replace($persian, $num, $string); | |
$englishNumbersOnly = str_replace($arabic, $num, $convertedPersianNums); | |
return $englishNumbersOnly; | |
} | |
function datetime_slice ($datetime_string,$slice_type){ | |
$datetime_string = convert_numbers_to_persian($datetime_string); | |
$by_space = explode(' ',$datetime_string); | |
$by_colon_date = explode('-',$by_space[0]); | |
$by_colon_time = explode(':',$by_space[1]); | |
switch ($slice_type) | |
{ | |
case 'date': | |
return $by_space[0]; | |
break; | |
case 'time': | |
return $by_space[1]; | |
break; | |
case 'year': | |
return $by_colon_date[0]; | |
break; | |
case 'month': | |
return $by_colon_date[1]; | |
break; | |
case 'day': | |
return $by_colon_date[2]; | |
break; | |
case 'hour': | |
return $by_colon_time[0]; | |
break; | |
case 'minute': | |
return $by_colon_time[1]; | |
break; | |
case 'second': | |
return $by_colon_time[2]; | |
break; | |
} | |
return false; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment