PDA

View Full Version : سوال: تنظیم فرمت تاریخ



rahimi.mohamad24
پنج شنبه 15 تیر 1391, 20:05 عصر
سلام
من توی برنامم تاریخ شمسی را به کاربر نشان می دهد ولی مشکلم این است که در بعضی از کامپیوتر ها تاریخ را به صورت برعکس نشان میدهد(با اینکه در تنظیمات region and language ،فارسی تنظیم شده)
اما در کامپیوترهای دیگر که روی فارسی تنظیم نشده ،تاریخ را به صورت صحیح اما با اعداد انگلیسی نشان می دهد.
برای اینکه این دوگانگی برطرف شود،چه راهی پیشنهاد می کنید؟
در وهله ی اول میخوام تاریخ به صورت صحیح روز/ماه/سال باشد و اگر اعداد به صورت فارسی باشند هم که بهتر است.

goldax
پنج شنبه 15 تیر 1391, 23:36 عصر
مشکل نمایش اعداد به شکل انگلیسی یا فارسی روی سیستم کاربر بر میگرده به تنظیمات محلی خودش.البته تا حالا آزمایش نکردم اما ممکنه با تنظیم culture توی webconfig این مشکل حل شه.یه جستجویی کن.
اما برای نمایش تاریخت با فرمتی که دوست داری می تونی از روش زیر استفاده کنی:

label1.text = MyDate.ToString("dd/mm/yyyy");

به این شکل هم می تونی culture رو تنظیم کنی:

label1.text = MyDate.ToString("dd/mm/yyyy",CultureInfo.CreateSpecificCulture("fa-IR"));


منظور از dd همون day هست
mm ماه یا month
و yyyy سال یا year
به جای yyyy می تونی yy بزاری تا 2 رقم از سال رو نشون بده

mahmood_4246
پنج شنبه 15 تیر 1391, 23:41 عصر
تو چه مرورگری این مشکل رو دیدی ؟

Saman Hashemi
جمعه 16 تیر 1391, 12:16 عصر
بهتره اینکار به وسیله css و js انجام بدید که در صورت تغییر مجددا دوباره دست تو کد نبرید...!

rahimi.mohamad24
جمعه 16 تیر 1391, 12:57 عصر
مشکل نمایش اعداد به شکل انگلیسی یا فارسی روی سیستم کاربر بر میگرده به تنظیمات محلی خودش.البته تا حالا آزمایش نکردم اما ممکنه با تنظیم culture توی webconfig این مشکل حل شه.یه جستجویی کن.
اما برای نمایش تاریخت با فرمتی که دوست داری می تونی از روش زیر استفاده کنی:
1
2
label1.text = MyDate.ToString("dd/mm/yyyy");


من برای درج تاریخ در <input> از jquery استفاده میکنم.
روش شما را برای کدم اجرا کردم ولی تاثیری نداشت.



date=globalYear+"/"+globalMonth;
for(i=1;i <= 31;i++)
{
day=i;
if(i<10){day="0"+i;}
{
x=date+"/"+day;
x=x.toString("yyyy/mm/dd");
$('#date'+i).val(x);
}
}

به جز IE که به صورت فارسی نشون میده،در بقیه مرورگها به صورت انگلیسی اعداد نمایش داده می شوند.
با این تفاوت که مشکل به هم خوردگی فرمت تاریخ،فقط در IE است.


بهتره اینکار به وسیله css و js انجام بدید که در صورت تغییر مجددا دوباره دست تو کد نبرید...!
لطفا بیشتر در این مورد راهنمایی بفرمایید

mahmood_4246
جمعه 16 تیر 1391, 12:59 عصر
این کد رو قبل Label یا چیزی که تاریخ رو نگه میدارین بذارید تاریخ چپ به راست نشون داده میشه

&lrm;
این مشکل رو تو IE داشتم که تاریخ برعکس نشون داده میشد

rahimi.mohamad24
جمعه 16 تیر 1391, 13:19 عصر
ین کد رو قبل Label یا چیزی که تاریخ رو نگه میدارین بذارید تاریخ چپ به راست نشون داده میشه
&lrm;


من در body کد را به صورتی که فرمودید،تغییر دادم نتیجه تغییری نکرد:

<table dir="rtl" style="font:12px tahoma;text-align:center;margin:0 auto" width="800px" >
<tr><td>&lrm;<input id="date1" type="text"/></td>

mahmood_4246
جمعه 16 تیر 1391, 13:32 عصر
این جوری کار کرد

<table dir="rtl" style="font:12px tahoma;text-align:center;margin:0 auto"

width="800px" >
<tr><td>&lrm;<input id="date1" type="text" value="&lrm;1391/10/12"/></td>

rahimi.mohamad24
جمعه 16 تیر 1391, 14:12 عصر
مشکل اینجاست که من تاریخ را به صورت دستی خودم می سازم و از قبل وجود ندارد.به روش شما اگر تاریخ از قبل کامل مشخص باشد،درست است ولی تاریخ به صورت داینامیک در کد ساخته می شود که باز هم تاثیری نداشت.و اون کد lrmرا همراه با تاریخ ساخته شده نشان میداد

date=globalYear+"/"+globalMonth;
for(i=1;i <= 31;i++)
{
day=i;
if(i<10){day="0"+i;}
{
x=date+"/"+day;
$('#date'+i).val("&lrm;"+x);
}
}

البته فرمت تاریخ در ie را درست کرده ولی;lrm را هم همراه با تاریخ نشان میدهد و اعداد را هم انگلیسی نشان میدهد.