Intereting Posts
Как связать php с базой данных IBM SQL с помощью Bluemix? Триггер не распознает таблицу (Trigger для разбиения содержимого NEW.values ​​на несколько строк для вставки в другую таблицу) Измените эту функцию js так, чтобы она использовала значение, полученное из db вместо значений, указанных в массиве, для генерации опций Select PHP Использование File_get_Contents () для предварительного заполнения формы Формат файла журнала ошибок PHP (директива php.ini error_log) в Windows jquery autocomplete get id как выбранная метка как отправлять / получать файлы через веб-службы в php Получить высоту и ширину изображения как целочисленные значения? Что делают модификаторы ENT_HTML5, ENT_HTML401, … на html_entity_decode? у пользователя есть пароль в меню крючков Маршруты не работают без index.php Могу ли я обнаружить IE6 с PHP? Что означает «&» в данном случае? Как я настраиваю сортировку вида Yii2? Тестирование в PHP

Показать даты на Арабский

Вот мой код:

setlocale( LC_ALL,'ar' ); echo strftime( '%e %b, %Y', strtotime( '2011-10-25' )); 

Вывод:

 25 Sep, 2011 

Почему он не показывает арабскую дату? Я использую strftime неправильно?

Solutions Collecting From Web of "Показать даты на Арабский"

AFAIK setlocale самом деле не будет выполнять какой-либо перевод языка для вас, а скорее влияет на такие вещи, как форматирование и функциональность компаратора. Если вы хотите локализовать, вы можете попробовать использовать IntlDateFormatter, который может дать вам то, что вам нужно.

Обновлено: вы также можете попробовать Zend_Date, как предложено в этом вопросе, если PHP 5.3 не является для вас вариантом.

Здесь вы можете распечатать арабскую дату PHP:

Создайте файл с именем arabicdate.php и поместите в него эту функцию:

 function ArabicDate() { $months = array("Jan" => "يناير", "Feb" => "فبراير", "Mar" => "مارس", "Apr" => "أبريل", "May" => "مايو", "Jun" => "يونيو", "Jul" => "يوليو", "Aug" => "أغسطس", "Sep" => "سبتمبر", "Oct" => "أكتوبر", "Nov" => "نوفمبر", "Dec" => "ديسمبر"); $your_date = date('ym-d'); // The Current Date $en_month = date("M", strtotime($your_date)); foreach ($months as $en => $ar) { if ($en == $en_month) { $ar_month = $ar; } } $find = array ("Sat", "Sun", "Mon", "Tue", "Wed" , "Thu", "Fri"); $replace = array ("السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة"); $ar_day_format = date('D'); // The Current Day $ar_day = str_replace($find, $replace, $ar_day_format); header('Content-Type: text/html; charset=utf-8'); $standard = array("0","1","2","3","4","5","6","7","8","9"); $eastern_arabic_symbols = array("٠","١","٢","٣","٤","٥","٦","٧","٨","٩"); $current_date = $ar_day.' '.date('d').' / '.$ar_month.' / '.date('Y'); $arabic_date = str_replace($standard , $eastern_arabic_symbols , $current_date); return $arabic_date; } 

Теперь включите этот файл на свою страницу:

 include 'arabicdate.php'; 

Затем вы можете напечатать арабскую дату PHP:

 echo ArabicDate(); 

Прямой форматированный пример:

http://ideone.com/MC0hou

Надеюсь, это поможет.

Вдохновленный ответом Amr SubZero выше:

Если кому-то еще нужно это, эти две функции отображают дату и время публикации на арабском языке для веб-сайта wordpress:

ДАТА:

functions.php

 function single_post_arabic_date($postdate_d,$postdate_d2,$postdate_m,$postdate_y) { $months = array("Jan" => "يناير", "Feb" => "فبراير", "Mar" => "مارس", "Apr" => "أبريل", "May" => "مايو", "Jun" => "يونيو", "Jul" => "يوليو", "Aug" => "أغسطس", "Sep" => "سبتمبر", "Oct" => "أكتوبر", "Nov" => "نوفمبر", "Dec" => "ديسمبر"); $en_month = $postdate_m; foreach ($months as $en => $ar) { if ($en == $en_month) { $ar_month = $ar; } } $find = array ("Sat", "Sun", "Mon", "Tue", "Wed" , "Thu", "Fri"); $replace = array ("السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة"); $ar_day_format = $postdate_d2; $ar_day = str_replace($find, $replace, $ar_day_format); header('Content-Type: text/html; charset=utf-8'); $standard = array("0","1","2","3","4","5","6","7","8","9"); $eastern_arabic_symbols = array("٠","١","٢","٣","٤","٥","٦","٧","٨","٩"); $post_date = $ar_day.' '.$postdate_d.' '.$ar_month.' '.$postdate_y; $arabic_date = str_replace($standard , $eastern_arabic_symbols , $post_date); return $arabic_date; } 

Внутри цикла:

 <date> <?php $postdate_d = get_the_date('d'); $postdate_d2 = get_the_date('D'); $postdate_m = get_the_date('M'); $postdate_y = get_the_date('Y'); echo single_post_arabic_date($postdate_d,$postdate_d2, $postdate_m, $postdate_y); ?> </date> 

ВРЕМЯ:

functions.php

 function single_post_arabic_time($posttime_h, $posttime_i, $posttime_a) { $ampm = array("AM", "PM"); $ampmreplace = array("ق.ظ", "ب.ظ"); $ar_ampm = str_replace($ampm, $ampmreplace, $posttime_a); header('Content-Type: text/html; charset=utf-8'); $standardletters = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); $eastern_arabic_letters = array("٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"); $post_time = $posttime_h . ':' . $posttime_i." ".$ar_ampm; $arabic_time = str_replace($standardletters, $eastern_arabic_letters, $post_time); return $arabic_time; } 

Внутри цикла:

 <span>الساعة </span> <time> <?php $posttime_h = get_the_date('h'); $posttime_i = get_the_date('i'); $posttime_s = get_the_date('d'); $posttime_a = get_the_date('A'); echo single_post_arabic_time($posttime_h,$posttime_i,$posttime_a); ?> </time> 

Как насчет этого:

 function arabicDate($time) { $months = ["Jan" => "يناير", "Feb" => "فبراير", "Mar" => "مارس", "Apr" => "أبريل", "May" => "مايو", "Jun" => "يونيو", "Jul" => "يوليو", "Aug" => "أغسطس", "Sep" => "سبتمبر", "Oct" => "أكتوبر", "Nov" => "نوفمبر", "Dec" => "ديسمبر"]; $days = ["Sat" => "السبت", "Sun" => "الأحد", "Mon" => "الإثنين", "Tue" => "الثلاثاء", "Wed" => "الأربعاء", "Thu" => "الخميس", "Fri" => "الجمعة"]; $am_pm = ['AM' => 'صباحاً', 'PM' => 'مساءً']; $day = $days[date('D', $time)]; $month = $months[date('M', $time)]; $am_pm = $am_pm[date('A', $time)]; $date = $day . ' ' . date('d', $time) . ' - ' . $month . ' - ' . date('Y', $time) . ' ' . date('h:i', $time) . ' ' . $am_pm; $numbers_ar = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"]; $numbers_en = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; return str_replace($numbers_en, $numbers_ar, $date); } 

Примечание: параметр ($ time) должен быть отметкой времени Unix.

Вы запустили

 locale -a 

и проверили, что ваша система имеет локаль под названием «ar»? Это может быть названо чем-то более конкретным, например, «ar_AR.utf8» … Если вам нужно поддерживать арабский язык, написанный по-разному в нескольких системах, вы можете передать массив в setlocale (). Будет использовано первое имя локали в этом массиве, поддерживаемое системой.

Я использую эту функцию javascript, если я могу помочь:

 <script type='text/javascript'> navig = navigator.appName; versn = parseInt(navigator.appVersion); if ( (navig == "Netscape" && versn >= 3) || (navig == "Microsoft Internet Explorer" && versn >= 4)) info = "true"; else info = "false"; function Ar_Date() { if (info == "true") { var info3 = new Date(); var info4=info3.getDay(); var info5=info3.getMonth(); var info6=info3.getDate(); var info7=info3.getFullYear(); var info8 = new Array('&#1604;&#1571;&#1581;&#1583;','&#1575;&#1604;&#1573;&#1579;&#1606;&#1610;&#1606;','&#1575;&#1604;&#1579;&#1604;&#1575;&#1579;&#1575;&#1569;','&#1575;&#1604;&#1571;&#1585;&#1576;&#1593;&#1575;&#1569;','&#1575;&#1604;&#1582;&#1605;&#1610;&#1587;','&#1575;&#1604;&#1580;&#1605;&#1593;&#1577;','&#1575;&#1604;&#1587;&#1576;&#1578;'); var info9 = info8[info4]; var info10 = new Array('&#1580;&#1575;&#1606;&#1601;&#1610;','&#1601;&#1610;&#1601;&#1585;&#1610;','&#1605;&#1575;&#1585;&#1587;','&#1571;&#1601;&#1585;&#1610;&#1604;','&#1605;&#1575;&#1610;','&#1580;&#1608;&#1575;&#1606;','&#1580;&#1608;&#1610;&#1604;&#1610;&#1577;','&#1571;&#1608;&#1578;','&#1587;&#1576;&#1578;&#1605;&#1576;&#1585;','&#1571;&#1603;&#1578;&#1608;&#1576;&#1585;','&#1606;&#1608;&#1601;&#1605;&#1576;&#1585;','&#1583;&#1610;&#1587;&#1605;&#1576;&#1585;'); var info11 = info10[info5]; var info12=info9+'&#1548; '+info6+' '+info11+' '+info7; var info12=info9+'&#1548; '+info6+' '+info11; document.write(info12); } } </script> 
 function single_post_arabic_date($postdate_d,$postdate_d2,$postdate_m,$postdate_y) { $months = array("01" => "يناير", "02" => "فبراير", "03" => "مارس", "04" => "أبريل", "05" => "مايو", "06" => "يونيو", "07" => "يوليو", "08" => "أغسطس", "09" => "سبتمبر", "10" => "أكتوبر", "11" => "نوفمبر", "12" => "ديسمبر"); $ar_month =months[$postdate_m]; $find = array ("Sat", "Sun", "Mon", "Tue", "Wed" , "Thu", "Fri"); $replace = array ("السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة"); $ar_day_format = $postdate_d2; $ar_day = str_replace($find, $replace, $ar_day_format); header('Content-Type: text/html; charset=utf-8'); $standard = array("0","1","2","3","4","5","6","7","8","9"); $eastern_arabic_symbols = array("٠","١","٢","٣","٤","٥","٦","٧","٨","٩"); $post_date = $ar_day.' '.$postdate_d.' '.$ar_month.' '.$postdate_y; $arabic_date = str_replace($standard , $eastern_arabic_symbols , $post_date); return $arabic_date; } 

это просто улучшить функцию

 <?php $postdate_d = get_the_date('d'); $postdate_d2 = get_the_date('D'); $postdate_m = get_the_date('m'); $postdate_y = get_the_date('Y'); echo single_post_arabic_date($postdate_d,$postdate_d2, $postdate_m, $postdate_y); ?> 

Это работает для вас:

 Setlocale (LC_ALL, 'ар');
 echo strftime ('% A% d% B% Y'); 

Надеюсь, поможет