با سلام خدمت شما دوستان میخواستم بپرسم آیا تابعی وجود داره که بتونه تاریخ روز (میلادی) رو به شمسی تبدیل کنه
به این صورت که تاریخ امروز به میلادی 2012/07/26 رو به پنجشنبه 5 مرداد تبدیل کنه.
با سلام خدمت شما دوستان میخواستم بپرسم آیا تابعی وجود داره که بتونه تاریخ روز (میلادی) رو به شمسی تبدیل کنه
به این صورت که تاریخ امروز به میلادی 2012/07/26 رو به پنجشنبه 5 مرداد تبدیل کنه.
دوست عزیز برای وردپرس خود افزونه wp-jalali که بطور پیشفرض هنگام نصب وردپرس فارسی نصب میشود وجود دارد.و فقط باید فعالش کرد.
آیا تابع را برای محل خاصی لازم دارید؟
من یک پلاگین فوتبالی دارم درست میکنم که تاریخ مسابقه در دیتابیس به صورت 2012-07-27 18:40 میباشد که من میخوام تابعی باشه که به صورت حودکار این تاریخ رو به پنجشنبه 5 مرداد 18:40 تبدیل کنه آیا چنین تابعی هست.
اول یک فایل جدید درست کن به نام miladi.php و کد زیر رو توش بریز و ذخیره کن
<?php
function gregorian_to_jalali($g_y,$g_m,$g_d,$mod=''){
$d_4=$g_y%4;
$g_a=array(0,0,31,59,90,120,151,181,212,243,273,304,334);
$doy_g=$g_a[(int)$g_m]+$g_d;
if($d_4==0 and $g_m>2)$doy_g++;
$d_33=(int)((($g_y-16)%132)*.0305);
$a=($d_33==3 or $d_33<($d_4-1) or $d_4==0)?286:287;
$b=(($d_33==1 or $d_33==2) and ($d_33==$d_4 or $d_4==1))?78:(($d_33==3 and $d_4==0)?80:79);
if((int)(($g_y-10)/63)==30){$a--;$b++;}
if($doy_g>$b){
$jy=$g_y-621; $doy_j=$doy_g-$b;
}else{
$jy=$g_y-622; $doy_j=$doy_g+$a;
}
if($doy_j<187){
$jm=(int)(($doy_j-1)/31); $jd=$doy_j-(31*$jm++);
}else{
$jm=(int)(($doy_j-187)/30); $jd=$doy_j-186-($jm*30); $jm+=7;
}
return($mod=='')?array($jy,$jm,$jd):$jy.$mod.$jm.$mod.$jd;
}
function jalali_to_gregorian($j_y,$j_m,$j_d,$mod=''){
$d_4=($j_y+1)%4;
$doy_j=($j_m<7)?(($j_m-1)*31)+$j_d:(($j_m-7)*30)+$j_d+186;
$d_33=(int)((($j_y-55)%132)*.0305);
$a=($d_33!=3 and $d_4<=$d_33)?287:286;
$b=(($d_33==1 or $d_33==2) and ($d_33==$d_4 or $d_4==1))?78:(($d_33==3 and $d_4==0)?80:79);
if((int)(($j_y-19)/63)==20){$a--;$b++;}
if($doy_j<=$a){
$gy=$j_y+621; $gd=$doy_j+$b;
}else{
$gy=$j_y+622; $gd=$doy_j-$a;
}
foreach(array(0,31,($gy%4==0)?29:28,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){
if($gd<=$v)break;
$gd-=$v;
}
return($mod=='')?array($gy,$gm,$gd):$gy.$mod.$gm.$mod.$gd;
}
?>
حالا در صفحه ای که میخوای تاریخ به شمسی تبدیل بشه بالای صفحه بعد از <?php این کد رو بزار:
include_once('miladi.php');
حالا جایی که می خوای تاریخ میلادی به شمسی تبدیل بشه این کد رو بنویس:
echo gregorian_to_jalali(date("Y") ,date("m"),date("d"),' / ');
به جای date("Y") سال میلادی و به جای date("m") ماه میلادی و بجای date("d روز میلادی رو بنویس تا معادل شمسی رو بهت بده.
در کدبالا تاریخ سیستم گرفته میشه و معادل شمسی آن برگردانده میشود.
نتیجه رو همینجا بگو
دوست عزیز اگه متوجه نشدی کد صفحه رو بده تا ویرایش شدشو برات بزارم
دوشت عزیز من تابعی میخوام به این صورت date_name('2012-07-26') که در صورت چاپ اینو بهم بده پنجشنبه 5 مرداد
ایملتو بده توی پروژه هام بگردم دنبالش و برات برستم
arashmf72@yahoo.com
اگه هستی چند دقیقه دیگه کدشو اینجا میزارم؟ هستی؟
نه نیستم تونستی به ایمیلم بفرس!
با سلام
من پوسته جدیدی نصب کردم ولی تاریخ شمسی اون به هم ریخته.افزونه یجلالی هم نصبه ولی نمی دونم مشکل از کجاس. تاریخ صفحه اول روی امروز : دوشنبه ۱۸ ام اردیبهشت ۱۳۹۱ ثابت مونده...
کسی می تونه راهمایی کنه؟
http://sobhekavir.com/
اقا این تاریخ شمسی پلاگینش درست نشد
کبیسه را هم درست حساب میکنه؟؟؟؟
cicikam گفت:
کبیسه را هم درست حساب میکنه؟؟؟؟
عجب !!
شما وبلاگ دارید روی میهن بلاگ چطور اون سیستم با وردپرس ساخته شده ؟؟!!
در صورتی هم که سایتی دارید با وردپس ، لطف کنید که تاپیک جدید ایجاد کنید برای پرسش سوال .
موفق باشید
IMDe گفت:
عجب !!
شما وبلاگ دارید روی میهن بلاگ چطور اون سیستم با وردپرس ساخته شده ؟؟!!
در صورتی هم که سایتی دارید با وردپس ، لطف کنید که تاپیک جدید ایجاد کنید برای پرسش سوال .
موفق باشید
من دوست داشتم این سایتمو معرفی کنم سایت وردپرسیم چیز دیگه ای عجیب نیست که ؟؟؟!!! :-)
cicikam گفت:
من دوست داشتم این سایتمو معرفی کنم سایت وردپرسیم چیز دیگه ای عجیب نیست که ؟؟؟!!! :-)
خیر عجیب نیست .
اگر واقعا برای طرح سوال آمده اید لطفا در تاپیک دیگران مطرح نکنید .
این کار باعث بالا آمدن تاپیک های قدیمی می شود .
خودتان یک تاپیک جدید ایجاد کنید و سوالتان را طرح کنید .