ورود

View Full Version : عدم نمایش صحیح تاریخ



qqq2qqq
شنبه 29 مهر 1391, 18:04 عصر
سلام من از کد زیر برای نمایش تاریخ استفاده می کنم


</script>
<script type="text/javascript">
function showdate()
{
week= new Array("يكشنبه","دوشنبه","سهشنبه","چهارشنبه","پنج شنبه","جمعه","شنبه")
months = new Array("فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند");
a = new Date(); d= a.getDay(); day= a.getDate(); month =a.getMonth()+1; year= a.getYear(); 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 (month) { case 1: (day<21)? (month=10,
day+=10):(month=11, day-=20); break; case 2: (day<20)? (month=11,
day+=11):(month=12, day-=19); break; case 3: (day<21)? (month=12,
day+=9):(month=1, day-=20); break; case 4: (day<21)? (month=1,
day+=11):(month=2, day-=20); break; case 5: case 6: (day<22)?
(month-=3, day+=10):(month-=2, day-=21); break; case 7: case 8: case 9:
(day<23)? (month-=3, day+=9):(month-=2, day-=22); break; case
10:(day<23)? (month=7, day+=8):(month=8, day-=22); break; case 11:
case 12:(day<22)? (month-=3, day+=9):(month-=2, day-=21); break;
default: break; } } if (y==2) { year -= ( (month < 3) || ((month ==
3) && (day < 20)) )? 622:621; switch (month) { case 1:
(day<21)? (month=10, day+=10):(month=11, day-=20); break; case 2:
(day<20)? (month=11, day+=11):(month=12, day-=19); break; case 3:
(day<20)? (month=12, day+=10):(month=1, day-=19); break; case 4:
(day<20)? (month=1, day+=12):(month=2, day-=19); break; case 5:
(day<21)? (month=2, day+=11):(month=3, day-=20); break; case 6:
(day<21)? (month=3, day+=11):(month=4, day-=20); break; case 7:
(day<22)? (month=4, day+=10):(month=5, day-=21); break; case 8:
(day<22)? (month=5, day+=10):(month=6, day-=21); break; case 9:
(day<22)? (month=6, day+=10):(month=7, day-=21); break; case
10:(day<22)? (month=7, day+=9):(month=8, day-=21); break; case
11:(day<21)? (month=8, day+=10):(month=9, day-=20); break; case
12:(day<21)? (month=9, day+=10):(month=10, day-=20); break; default:
break; } } if (y==3) { year -= ( (month < 3) || ((month == 3)
&& (day < 21)) )? 622:621; switch (month) { case 1:
(day<20)? (month=10, day+=11):(month=11, day-=19); break; case 2:
(day<19)? (month=11, day+=12):(month=12, day-=18); break; case 3:
(day<21)? (month=12, day+=10):(month=1, day-=20); break; case 4:
(day<21)? (month=1, day+=11):(month=2, day-=20); break; case 5: case
6: (day<22)? (month-=3, day+=10):(month-=2, day-=21); break; case 7:
case 8: case 9: (day<23)? (month-=3, day+=9):(month-=2, day-=22);
break; case 10:(day<23)? (month=7, day+=8):(month=8, day-=22);
break; case 11: case 12:(day<22)? (month-=3, day+=9):(month-=2,
day-=21); break; default: break; } }

document.write(week[d]+" "+day+" "+months[month-1]+" "+ year);

}


</SCRIPT>

این کد فقط در IE درست نمایش داده میشه و در فایرفاکس و کروم به صورت شنبه 29 مهر -509 نمایش داده میشه
لطفا یکی کمک کنه اینکه چکارش کنم یا اینکه کسی اگر کد درستی داره لطف کنه در اختیارم بذاره

زینب فاطمی
شنبه 29 مهر 1391, 19:27 عصر
سلام
در خط 7 بعد از :
year= a.getYear();


این رو اضافه کنید :
year=(window.navigator.userAgent.indexOf('MSIE')>0)? year:1900+year;


ببینید درست میشه . من توی فایرفاکس و اپرا و سافاری امتحان کردم درست بود .

qqq2qqq
سه شنبه 02 آبان 1391, 18:41 عصر
بسیار عالی ، متکشرم ، عالی بود نکتت

زینب فاطمی
سه شنبه 02 آبان 1391, 21:50 عصر
خواهش می کنم .
موفق باشید .