private function PersianDate::persianWords in Persian Date for Drupal 8 8
Same name and namespace in other branches
- 8.4 src/Converter/PersianDate.php \Drupal\persian_date\Converter\PersianDate::persianWords()
1 call to PersianDate::persianWords()
- PersianDate::format in src/
Converter/ PersianDate.php - @inheritDoc
File
- src/
Converter/ PersianDate.php, line 252
Class
- PersianDate
- This class hold time and represents it in Persian Date format.
Namespace
Drupal\persian_date\ConverterCode
private function persianWords($array, $mod = '') {
foreach ($array as $type => $num) {
$num = (int) $num;
switch ($type) {
case 'ss':
$sl = strlen($num);
$xy3 = substr($num, 2 - $sl, 1);
$h3 = $h34 = $h4 = '';
if ($xy3 == 1) {
$p34 = '';
$k34 = array(
'ده',
'یازده',
'دوازده',
'سیزده',
'چهارده',
'پانزده',
'شانزده',
'هفده',
'هجده',
'نوزده',
);
$h34 = $k34[substr($num, 2 - $sl, 2) - 10];
}
else {
$xy4 = substr($num, 3 - $sl, 1);
$p34 = ($xy3 == 0 or $xy4 == 0) ? '' : ' و ';
$k3 = array(
'',
'',
'بیست',
'سی',
'چهل',
'پنجاه',
'شصت',
'هفتاد',
'هشتاد',
'نود',
);
$h3 = $k3[$xy3];
$k4 = array(
'',
'یک',
'دو',
'سه',
'چهار',
'پنج',
'شش',
'هفت',
'هشت',
'نه',
);
$h4 = $k4[$xy4];
}
$array[$type] = ($num > 99 ? str_ireplace(array(
'12',
'13',
'14',
'19',
'20',
), array(
'هزار و دویست',
'هزار و سیصد',
'هزار و چهارصد',
'هزار و نهصد',
'دوهزار',
), substr($num, 0, 2)) . (substr($num, 2, 2) == '00' ? '' : ' و ') : '') . $h3 . $p34 . $h34 . $h4;
break;
case 'mm':
$key = array(
'فروردین',
'اردیبهشت',
'خرداد',
'تیر',
'مرداد',
'شهریور',
'مهر',
'آبان',
'آذر',
'دی',
'بهمن',
'اسفند',
);
$array[$type] = $key[$num - 1];
break;
case 'rr':
$key = array(
'یک',
'دو',
'سه',
'چهار',
'پنج',
'شش',
'هفت',
'هشت',
'نه',
'ده',
'یازده',
'دوازده',
'سیزده',
'چهارده',
'پانزده',
'شانزده',
'هفده',
'هجده',
'نوزده',
'بیست',
'بیست و یک',
'بیست و دو',
'بیست و سه',
'بیست و چهار',
'بیست و پنج',
'بیست و شش',
'بیست و هفت',
'بیست و هشت',
'بیست و نه',
'سی',
'سی و یک',
);
$array[$type] = $key[$num - 1];
break;
case 'rh':
$key = array(
'یکشنبه',
'دوشنبه',
'سه شنبه',
'چهارشنبه',
'پنجشنبه',
'جمعه',
'شنبه',
);
$array[$type] = $key[$num];
break;
case 'sh':
$key = array(
'مار',
'اسب',
'گوسفند',
'میمون',
'مرغ',
'سگ',
'خوک',
'موش',
'گاو',
'پلنگ',
'خرگوش',
'نهنگ',
);
$array[$type] = $key[$num % 12];
break;
case 'mb':
$key = array(
'حمل',
'ثور',
'جوزا',
'سرطان',
'اسد',
'سنبله',
'میزان',
'عقرب',
'قوس',
'جدی',
'دلو',
'حوت',
);
$array[$type] = $key[$num - 1];
break;
case 'ff':
$key = array(
'بهار',
'تابستان',
'پاییز',
'زمستان',
);
$array[$type] = $key[(int) ($num / 3.1)];
break;
case 'km':
$key = array(
'فر',
'ار',
'خر',
'تی',
'مر',
'شه',
'مه',
'آب',
'آذ',
'دی',
'به',
'اس',
);
$array[$type] = $key[$num - 1];
break;
case 'kh':
$key = array(
'ی',
'د',
'س',
'چ',
'پ',
'ج',
'ش',
);
$array[$type] = $key[$num];
break;
default:
$array[$type] = $num;
}
}
return $mod == '' ? $array : implode($mod, $array);
}