• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشکل در تاریخ

mehran_p

Registered User
تاریخ عضویت
23 فوریه 2006
نوشته‌ها
64
لایک‌ها
1
با سلام خدمت اساتید
من ابتدا با arabic انجمنم رو فارسی کردم اما یه مشکل وجود داشتش و مجبور شدم به UTF-8 تغییرش بدم ولی تاریخ خراب شد !
چی کار باید بکنم ؟
:(
 

siavashmusic

Registered User
تاریخ عضویت
6 فوریه 2005
نوشته‌ها
1,207
لایک‌ها
2
محل سکونت
بندرانزلی
بدون در نظر گرفتن مطالبی که اشاره کردی (بدلیل واضح نبودن سوالتون ) از طریق زیر میتونی تاریخ رو به شمسی تبدیل کنی فکر کنم مشکلت همینه دیگه!!!

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

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));
}

آنرا با اين کد جايگزين کنيد:

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 */
$g_day_no %= 1461;

if ($g_day_no >= 366) {
$leap = false;

$g_day_no--;
$gy += $div($g_day_no, 365);
$g_day_no = $g_day_no % 365;
}


for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
$gm = $i+1;
$gd = $g_day_no+1;

return array($gy, $gm, $gd);
}




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));

if ($format==$board_config['default_dateformat']){

// $tempdate= gmdate("l|j|n|Y| - G:i", $gmepoch + (3600 * $tz));
$tempdate= gmdate("|j|n|Y| - G:i", $gmepoch + (3600 * $tz));
$temparray= explode ('|', $tempdate);
$jalali=gregorian_to_jalali( $temparray[3],$temparray[2],$temparray[1]);
$trans= array("1"=>"فروردين","2"=>"ارديبهشت","3"=>"خرداد","4"=>"تير","5"=>"مرداد","6"=>"شهريور","7"=>"مهر","8"=>"آبان","9"=>"آذر","10"=>"دي","11"=>"بهمن","12"=>"اسفند");
$jalali[1]=strtr ($jalali[1], $trans);
$finaldate= $temparray[0]." ".$jalali[2]." ".$jalali[1]." ".$jalali[0].$temparray[4];
return ( !empty($translate) ) ? strtr($finaldate, $translate) : $finaldate;
} else if ($format==$lang['DATE_FORMAT']){
// $tempdate= gmdate("l|j|n|Y| - G:i", $gmepoch + (3600 * $tz));
$tempdate= gmdate("|j|n|Y| - G:i", $gmepoch + (3600 * $tz));
$temparray= explode ('|', $tempdate);
$jalali=gregorian_to_jalali( $temparray[3],$temparray[2],$temparray[1]);
$trans= array("1"=>"فروردين","2"=>"ارديبهشت","3"=>"خرداد","4"=>"تير","5"=>"مرداد","6"=>"شهريور","7"=>"مهر","8"=>"آبان","9"=>"آذر","10"=>"دي","11"=>"بهمن","12"=>"اسفند");
$jalali[1]=strtr ($jalali[1], $trans);
$finaldate= $jalali[2]." ".$jalali[1]." ".$jalali[0];
return $finaldate;
//else {
//mehdi
// return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
}
}

موفق باشید
 

mehran_p

Registered User
تاریخ عضویت
23 فوریه 2006
نوشته‌ها
64
لایک‌ها
1
ممنون دوست عزیز !
اما مشکل حل نشد !!شایدم من اشتباه کردم
اگه ممکنه فایل functions.php رو که تغییرات مذکور توش ایجاد شده رو بزارید واسه دانلود
با تشکر
 

mehran_p

Registered User
تاریخ عضویت
23 فوریه 2006
نوشته‌ها
64
لایک‌ها
1
نمی دونم !
این functions اصلی
 

فایل های ضمیمه

  • functions.zip
    7.9 KB · نمایش ها: 2
بالا