-
اختلال در تاریخ شمسی
سلام
من کدی رو که دوستان در همین تالار پیشنهاد کرده بودند رو در سایت قرار دادم تا قبل از 27 شهریور (فکر کنم همین تاریخ بوده) تاریخ رو درست نمایش میداد ولی بعد اون تاریخ رو با چند روز تاخیر نمایش میده که الان یک آبان رو 4 مهر نمایش میده ...
یه کدی که درست باشه و هیچ مشکلی هم نداشته باشه و در طول سال اختلالی پیش نیاد حتی در سال های کبیسه و غیر کبیسه و همچنین php باشه ممنون میشم بذارید تا هم من و همچنین دیگر دوستان بهره ای ببرند ...
با تشکر فراوان
-------------------------------------------------------
محان
-
کسی برای کمک نبود ...................
-
ای بابا....
یکی جواب بده دیگه ....
-
دقیقاً نمیدونم کدوم کد رو میگید اما اگر همون کد تبدیل تاریخ iran php رو میگید برای من کار میکنه مشکلی هم نداره
شاید مشکلی تو کد شما وجود داره یا مصلاً پارامتهای تابع رو درست بهش نمیدید@
-
کد تاریخ مورد استفاده من
[PHP]
<?php
function showdate() {
$week = Array("يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنج شنبه","جمعه","شنبه") ;
$months = Array("فروردين","ارديبهشت","خرد د","تير","مرداد","شهريور","مهر" ,"آبان","آذر","دي","بهمن","اسفند ");
$timezone = 3.5 ;
$y = gmdate ("Y", time() + 3600*($timezone+date("I"))) ;
$m = gmdate ("m", time() + 3600*($timezone+date("I"))) ;
$d = gmdate ("j", time() + 3600*($timezone+date("I"))) ;
$day= $d;
$month = $m+1;
$year= $y;
if ($year== 0){$year=2000;}
if ($year<100){$year +=1900;}
$y=1;
for($i=0;$i<3000;$i+=4) {
if ($year==$i) {$y=2;}
}
for($i=1;$i<3000;$i+=4) {
if ($year==$i) {$y=3;}
}
if ($y==1) {
$year -= ( ($month < 3) || (($month == 3) && ($day < 21)) )? 622:621;
switch (4*$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 ($y==2) {
$year -= ( ($month < 3) || (($month == 3) && ($day < 20)) )? 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<20) {$month==12; $day+=10;}else{$month==1; $day-=19;} break;
case 4: if($day<20) {$month==1; $day+=12;}else{$month==2; $day-=19;} break;
case 5: if($day<21) {$month==2; $day+=11;}else{$month==3; $day-=20;} break;
case 6: if($day<21) {$month==3; $day+=11;}else{$month==4; $day-=20;} break;
case 7: if($day<22) {$month==4; $day+=10;}else{$month==5; $day-=21;} break;
case 8: if($day<22) {$month==5; $day+=10;}else{$month==6; $day-=21;} break;
case 9: if($day<22) {$month==6; $day+=10;}else{$month==7; $day-=21;} break;
case 10:if($day<22) {$month==7; $day+=9;}else{$months==8; $day-=21;} break;
case 11:if($day<21) {$month==8; $day+=10;}else{$month==9; $day-=20;} break;
case 12:if($day<21) {$month==9; $day+=10;}else{$month==10; $day-=20;} break;
default: break;
}
}
if ($y==3) {
$year -= ( ($month < 3) || (($month == 3) && ($day < 21)) )? 622:621;
switch (month) {
case 1: if($day<20) {$month==10; $day+=11;}else{$month==11; $day-=19;} break;
case 2: if($day<19) {$month==11; $day+=12;}else{$month==12; $day-=18;} break;
case 3: if($day<21) {$month==12; $day+=10;}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;
}
}
$weekday = $week[gmdate ("w", time() + 3600*($timezone+date("I")))] ;
$day = $day + 1 ;
$months = $months[gmdate ("m", time() + 3600*($timezone+date("I")))-4] ;
$year = $year ;
return $day." ".$months." ".$year ;
}
$date = showdate() ;
$timezone = 3.5 ;
$time = gmdate ("H:i:s", time() + 3600*($timezone+date("I"))) ;
?>[/PHP]
-
ساعته سرورتون درسته؟
تنظیمات رو درست انجام دادید؟
-
با ساعت مشکلی ندارم با تاریخ مشکل دارم که الان توی مهر هست نه آبان ...