Skip to content

Instantly share code, notes, and snippets.

@faridfr
Last active January 15, 2020 09:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save faridfr/da19aed52452ec8e0c01ccc030d5fe85 to your computer and use it in GitHub Desktop.
Save faridfr/da19aed52452ec8e0c01ccc030d5fe85 to your computer and use it in GitHub Desktop.
laravel morilog jalali to gregorian helper functions
<?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