这是我的代码:
setlocale( LC_ALL,'ar' );
echo strftime( '%e %b, %Y', strtotime( '2011-10-25' ));
Run Code Online (Sandbox Code Playgroud)
输出:
25 Sep, 2011
Run Code Online (Sandbox Code Playgroud)
为什么不显示阿拉伯语日期?我是否错误地使用strftime?
Amr*_*ero 24
在这里你可以打印阿拉伯语PHP日期:
创建一个名为的文件arabicdate.php并将此函数放入其中:
function ArabicDate() {
$months = array("Jan" => "?????", "Feb" => "??????", "Mar" => "????", "Apr" => "?????", "May" => "????", "Jun" => "?????", "Jul" => "?????", "Aug" => "?????", "Sep" => "??????", "Oct" => "??????", "Nov" => "??????", "Dec" => "??????");
$your_date = date('y-m-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;
}
Run Code Online (Sandbox Code Playgroud)
现在在您的页面中包含此文件:
include 'arabicdate.php';
Run Code Online (Sandbox Code Playgroud)
然后你可以打印阿拉伯语PHP日期:
echo ArabicDate();
Run Code Online (Sandbox Code Playgroud)
实时格式化示例:
希望有所帮助.
这个怎么样:
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);
}
Run Code Online (Sandbox Code Playgroud)
注意:参数($ time)应该是Unix时间戳。
AFAIKsetlocale实际上不会为您做任何语言翻译,而是会影响格式化和比较器功能等内容。如果您想要本地化,那么您可以尝试使用IntlDateFormatter,它可能会满足您的需求。
更新:如果 PHP 5.3 不适合您,您也可以按照此问题中的建议尝试Zend_Date 。
| 归档时间: |
|
| 查看次数: |
16902 次 |
| 最近记录: |