علی آبادانی
Registered User
با سلام
دوستان مشکلی در تابع تاریخ بوجود اومده
این تابع تاریخ من هستش :
از 27 اسفند پارسال یک روز عقب تر رو نشون میده
مثلاً اگر تاریخ این باشه : یکشنبه 15 اردیبهشت 1387
نشون میده : یکشنبه 14 اردیبهشت 1387
ممنون میشم اگر کمکم کنید
دوستان مشکلی در تابع تاریخ بوجود اومده
این تابع تاریخ من هستش :
PHP:
function shdate($atim){
$y = date("Y",$atim);
$m = date("m",$atim);
$d = date("d",$atim);
switch ($m){
case 3:
if ($d >=21){
$rooz = $d - 20;
$mah = 1;
}else{
$rooz = $d + 9;
$mah = 12;
}break;
case 4:
if ($d >=22){
$rooz = $d - 21;
$mah = 2;
}else{
$rooz = $d + 11;
$mah = 1;
}break;
case 5:
if ($d >=22){
$rooz = $d - 21;
$mah = 3;
}else{
$rooz = $d + 10;
$mah = 2;
}break;
case 6:
if ($d >=23){
$rooz = $d - 22;
$mah = 4;
}else{
$rooz = $d + 9;
$mah = 3;
}break;
case 7:
if ($d >=23){
$rooz = $d - 22;
$mah = 5;
}else{
$rooz = $d + 9;
$mah = 4;
}break;
case 8:
if ($d >=23){
$rooz = $d - 22;
$mah = 6;
}else{
$rooz = $d + 9;
$mah = 5;
}break;
case 9:
if ($d >=23){
$rooz = $d - 22;
$mah = 7;
}else{
$rooz = $d + 9;
$mah = 6;
}break;
case 10:
if ($d >=23){
$rooz = $d - 22;
$mah = 8;
}else{
$rooz = $d + 8;
$mah = 7;
}break;
case 11:
if ($d >=22){
$rooz = $d - 21;
$mah = 9;
}else{
$rooz = $d + 9;
$mah = 8;
}break;
case 12:
if ($d >=22){
$rooz = $d - 21;
$mah = 10;
}else{
$rooz = $d + 9;
$mah = 9;
}break;
case 1:
if ($d >=21){
$rooz = $d - 20;
$mah = 11;
}else{
$rooz = $d + 10;
$mah = 10;
}break;
case 2:
if ($d >=20){
$rooz = $d - 19;
$mah = 12;
}else{
$rooz = $d + 11;
$mah = 11;
}break;
}
if ($m <3)
$sal = $y - 622;
else if ($m >3)
$sal = $y - 621;
else if ($m == 3 && $d <21)
$sal = $y - 622;
else
$sal = $y - 621;
$shdt = $sal.'-'.$mah.'-'.$rooz;
return $shdt;
}
// show persian date with month name
function farsidate($tm,$lay)
{
if (!isset($lay))
$lay = 0;
$dt = shdate($tm);
$dat = explode ('-',$dt);
$year = $dat[0];
$month = $dat[1];
$day = $dat[2];
$today = date('sat',$tm);
switch ($month)
{
case 1:
$mah = "فروردين";break;
case 2:
$mah = "ارديبهشت";break;
case 3:
$mah = "خرداد";break;
case 4:
$mah = "تير";;break;
case 5:
$mah = "مرداد";break;
case 6:
$mah = "شهريور";break;
case 7:
$mah = "مهر";break;
case 8:
$mah = "آبان";break;
case 9:
$mah = "آذر";break;
case 10:
$mah = "دي";break;
case 11:
$mah = "بهمن";break;
case 12:
$mah = "اسفند";break;
}
$rooz;
$nrooz;
switch ($today)
{
case 'Sat':
$rooz = "شنبه";$nrooz=1;break;
case 'Sun':
$rooz = "يكشنبه";$nrooz=2;break;
case 'Mon':
$rooz = "دوشنبه";$nrooz=3;break;
case 'Thr':
$rooz = "سه شنبه";$nrooz=4;break;
case 'Wed':
$rooz = "چهار شنبه";$nrooz=5;break;
case 'Thu':
$rooz = "پنج شنبه";$nrooz=6;break;
case 'Fri':
$rooz = "جمعه";$nrooz=7;break;
از 27 اسفند پارسال یک روز عقب تر رو نشون میده
مثلاً اگر تاریخ این باشه : یکشنبه 15 اردیبهشت 1387
نشون میده : یکشنبه 14 اردیبهشت 1387
ممنون میشم اگر کمکم کنید