سلام

توی PHPBB اکثر کاربران دوست دارن از تاریخ شمسی استفاده کنند ولی مدی که برای این کار موجود هست خیلی نصب سخت و حساسی داره از این رو میخوام آسونترین روش برای تبدلی تاریخ میلادی به شمسی رو براتون بزارم لطفا دقیقا بصورت زیر عمل کنید تا مشکلی براتون پیش نیاد

براي اصلاح نمايش تاريخ شمسي به اين صورت زير عمل کنيد. در فولدر includes در فايل functions.php در خط 393 چنين چيزي مي بينيد:

کد PHP:
function create_date($format, $gmepoch, $tz)
{
global
$board_config, $lang;
static
$translate;
if ( empty(
$translate) && $board_config['default_lang'] != 'english' )
{
@
reset($lang['datetime']);
while ( list(
$match, $replace) = @each($lang['datetime']) )
{
$translate[$match] = $replace;
}
}
return ( !empty(
$translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
}

با این کد پایین جایگذین

کد PHP:

function gregorian_to_jalali($g_y, $g_m, $g_d)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
$div = create_function('$a,$b','return (int) ($a / $b);');
$gy = $g_y-1600;
$gm = $g_m-1;
$gd = $g_d-1;
$g_day_no = 365*$gy+$div($gy+3,4)-$div($gy+99,100)+$div($gy+399,400);
for (
$i=0; $i < $gm; ++$i)
$g_day_no += $g_days_in_month[$i];
if (
$gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
/* leap and after Feb */
$g_day_no++;
$g_day_no += $gd;
$j_day_no = $g_day_no-79;
$j_np = $div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
$j_day_no = $j_day_no % 12053;
$jy = 979+33*$j_np+4*$div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */
$j_day_no %= 1461;
if (
$j_day_no >= 366) {
$jy += $div($j_day_no-1, 365);
$j_day_no = ($j_day_no-1)%365;
}
for (
$i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
$j_day_no -= $j_days_in_month[$i];
$jm = $i+1;
$jd = $j_day_no+1;
return array(
$jy, $jm, $jd);
}
function
jalali_to_gregorian($j_y, $j_m, $j_d)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
$div = create_function('$a,$b','return (int) ($a / $b);');
$jy = $j_y-979;
$jm = $j_m-1;
$jd = $j_d-1;
$j_day_no = 365*$jy + $div($jy, 33)*8 + $div($jy%33+3, 4);
for (
$i=0; $i < $jm; ++$i)
$j_day_no += $j_days_in_month[$i];
$j_day_no += $jd;
$g_day_no = $j_day_no+79;
$gy = 1600 + 400*$div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
$g_day_no = $g_day_no % 146097;
$leap = true;
if (
$g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
$g_day_no--;
$gy += 100*$div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
$g_day_no = $g_day_no % 36524;
if (
$g_day_no >= 365)
$g_day_no++;
else
$leap = false;
}
$gy += 4*$div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */