امید امرایی
سه شنبه 21 اسفند 1386, 15:12 عصر
این تابع سه پارامتر دارد :
1- پارامتر اول در صورتی که true باشد روز به صورت حروفی نمایش داده خواهد شد .
2- پارامتر دوم به صورت پیش فرض برابر با Alpha و نشان دهنده این است که ماه به صورت حروفی نمایش داده شود و غیر از این مقدار به صورت عددی نمایش داده خواهد شد .
3- پارامتر سوم در صورتی که وجود داشته باشد می تواند یک تاریخ میلادی با فرمت yy-mm-dd باشد تا در خروجی به شمسی تبدیل گردد . (تاریخ جاری نمایش داده نخواهد شد!)
function showDate($W=true,$M='alpha',$ufDate="none")
{
$week = array('یکشنبه','دوشنبه','سه شنبه','چهارشنبه','پنج شنبه','جمعه','شنبه');
if($M == 'alpha') $months = array('فروردین','اردیبهشت','خرد د','تیر','مرداد','شهریور','مهر' ,'آبان','آذر','دی','بهمن','اسفند ');
else $months = array("1","2","3","4","5","6","7","8","9","10","11","12");
if($ufDate != "none"){
$ufd = explode("-",$ufDate);
$d = '';
$day= $ufd[0];
$month = $ufd[1];
$year= $ufd[2];
}else{
$year = date('y');
$month = date('m');
$d = date('w');
$day = date('d');
}
$year = ($year== 0)?2000:$year;
($year<1000)? ($year += 2000):true;
$year -= ( ($month < 3) || (($month == 3) && ($day < 21)) )? 622:621;
switch ($month)
{
case 1: if($day<21){$month=10;$day+=10;}else{$month=11;$day-=20;} break;
case 2: if($day<20){$month=11;$day+=11;}else{$month=12;$day-=19;} break;
case 3: if($day<21){$month=12;$day+=9;}else{$month=1;$day-=20;} break;
case 4: if($day<21){$month=1;$day+=11;}else{$month=2;$day-=20;} break;
case 5:
case 6: if($day<22){$month-=3;$day+=10;}else{$month-=2;$day-=21;} break;
case 7:
case 8:
case 9: if($day<23){$month-=3;$day+=9;}else{$month-=2;$day-=22;} break;
case 10:if($day<23){$month=7;$day+=8;}else{$month=8;$day-=22;} break;
case 11:
case 12:if($day<22){$month-=3;$day+=9;}else{$month-=2;$day-=21;} break;
default:
break;
}
if($W == true)
return $week[$d].' '.$day.' '.$months[$month-1].' '.$year;
else if($w != true){
if($M == 'alpha') return '<p dir="rl">'.$day.' '.$months[$month-1].' '.$year.'</p>';
else return $year.'-'.$month.'-'.$day;
}
}
استفاده از این تابع بدون پارامتر تاریخ جاری را به صورت "مثال : پنجشنبه 1 فروردین 1387" نشان خواهد داد .
1- پارامتر اول در صورتی که true باشد روز به صورت حروفی نمایش داده خواهد شد .
2- پارامتر دوم به صورت پیش فرض برابر با Alpha و نشان دهنده این است که ماه به صورت حروفی نمایش داده شود و غیر از این مقدار به صورت عددی نمایش داده خواهد شد .
3- پارامتر سوم در صورتی که وجود داشته باشد می تواند یک تاریخ میلادی با فرمت yy-mm-dd باشد تا در خروجی به شمسی تبدیل گردد . (تاریخ جاری نمایش داده نخواهد شد!)
function showDate($W=true,$M='alpha',$ufDate="none")
{
$week = array('یکشنبه','دوشنبه','سه شنبه','چهارشنبه','پنج شنبه','جمعه','شنبه');
if($M == 'alpha') $months = array('فروردین','اردیبهشت','خرد د','تیر','مرداد','شهریور','مهر' ,'آبان','آذر','دی','بهمن','اسفند ');
else $months = array("1","2","3","4","5","6","7","8","9","10","11","12");
if($ufDate != "none"){
$ufd = explode("-",$ufDate);
$d = '';
$day= $ufd[0];
$month = $ufd[1];
$year= $ufd[2];
}else{
$year = date('y');
$month = date('m');
$d = date('w');
$day = date('d');
}
$year = ($year== 0)?2000:$year;
($year<1000)? ($year += 2000):true;
$year -= ( ($month < 3) || (($month == 3) && ($day < 21)) )? 622:621;
switch ($month)
{
case 1: if($day<21){$month=10;$day+=10;}else{$month=11;$day-=20;} break;
case 2: if($day<20){$month=11;$day+=11;}else{$month=12;$day-=19;} break;
case 3: if($day<21){$month=12;$day+=9;}else{$month=1;$day-=20;} break;
case 4: if($day<21){$month=1;$day+=11;}else{$month=2;$day-=20;} break;
case 5:
case 6: if($day<22){$month-=3;$day+=10;}else{$month-=2;$day-=21;} break;
case 7:
case 8:
case 9: if($day<23){$month-=3;$day+=9;}else{$month-=2;$day-=22;} break;
case 10:if($day<23){$month=7;$day+=8;}else{$month=8;$day-=22;} break;
case 11:
case 12:if($day<22){$month-=3;$day+=9;}else{$month-=2;$day-=21;} break;
default:
break;
}
if($W == true)
return $week[$d].' '.$day.' '.$months[$month-1].' '.$year;
else if($w != true){
if($M == 'alpha') return '<p dir="rl">'.$day.' '.$months[$month-1].' '.$year.'</p>';
else return $year.'-'.$month.'-'.$day;
}
}
استفاده از این تابع بدون پارامتر تاریخ جاری را به صورت "مثال : پنجشنبه 1 فروردین 1387" نشان خواهد داد .