PDA

View Full Version : سوال: نوشتن تاریخ شمسی به کمک تابع date



h.r.t.69
یک شنبه 05 اردیبهشت 1389, 11:53 صبح
میشه در این موضوع کمک کنید؟

نوشتن تاریخ شمسی به کمک تابع date .

trade_mark
یک شنبه 05 اردیبهشت 1389, 13:31 عصر
من منظور شما رو خوب متوجه نشدم ولی چرا از jdf استفاده نمی کنی؟

xoogle.ir
یک شنبه 05 اردیبهشت 1389, 14:23 عصر
اگر امکانش هست همون اسکریپت jdf رو به همراه آموزش استفاده اش بذارید.

trade_mark
یک شنبه 05 اردیبهشت 1389, 15:14 عصر
فایل jdf رو یوست کردم
این فایل آموزش خاصی نداره ولی اگه بخوای ازش استفاده کنی می تونی include کنی و آرگومان های که به تابع date می دی رو به تابع jdate بده و خروجی مورد نظر رو بگیری
مثلا برای تاریخ می تونی از این کد استفاده کنی

echo jdate("l j F Y");

h.r.t.69
دوشنبه 06 اردیبهشت 1389, 09:00 صبح
مرسی...........................

iner30
دوشنبه 06 اردیبهشت 1389, 12:55 عصر
دوستان من یه کد تاریخ میلادی به شمسی (که از همین تالار گرفتم) رو دارم
وقتی اون رو اجرا میکنم تاریخ و ساعت رو به شمسی به وقت تهران چاپ میکنه
حالا میخوام بدونم اگه بخوام تاریخ هایی که تو پایگاه داده هم دارم وقتی میخوام نشونشون بدم به شمسی نشون بدم باید چیکار کنم؟

ممنون میشم راهنمایی کنید

trade_mark
دوشنبه 06 اردیبهشت 1389, 13:30 عصر
کدی که تو چند پست قبل پیوست کردم دانلود کن
اولین function رو نگاه کن
اگه یکم رو متغیر ورودی کار کنی می تونی به جوابت برسی
بازم اگه سوالی داشتی بگو تا کمکت کنم

iner30
دوشنبه 06 اردیبهشت 1389, 14:10 عصر
موفق نشدم
میشه یه ذره بیشتر توضیح بدی
من تاریخی که از پایگاه داده میخونم رو باید تو کدوم متغییر بریزم تا پردازش روش انجام بشه؟

trade_mark
دوشنبه 06 اردیبهشت 1389, 15:06 عصر
ببخشید دوست عزیز من سوال شما رو اشتباه متوجه شدم.جواب سوال شما اینه

برای این کار باید از تابع gregorian_to_jalali استفاده کنید . این تابع 3 متغیر
را از ورودی دریافت می کنه که به ترتیب سال، ماه و روز می باشد که همگی از نوع
عددی می باشند .

برای مثال اگر بخواهیم تاریخ 2002-11-25 را که درون یک متغیر داریم به شمسی تبدیل
کنیم و سپس آنرا درون یک متغیر قرار دهیم ابتدا باید عناصر تاریخ میلادی رو جدا
کنیم . برای این کار می توانیم در دستور زیر استفاده کنیم :


list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', $gdate );
?>



در اینجا از دستور preg_spilit برای جدا کردن عناصر تاریخ $gdate توسط جداکننده
استفاده شده .همانطور که می بینید syntax این دستور به این صورت است که
2 متغیر به عنوان ورودی دریافت می کند . اولی به عنوان delimiter می باشد که چون
می توان به صورت regex نیز آنرا وارد کرد باید بین دو slash (/) قرار گیرد و متغیر
دوم هم که همان متغییری است که تاریخ میلادی ما در آن قرار دارد .


چون خروجی این دستور یک آرایه است از دستور list استفاده کرده ایم تا عناصر آرایه
را هر کدام در یک متغیر قرار دهیم . هم اکنون روز، ماه و سال میلادی را هر کدام
در یک متغیر داریم . حال می توانیم از تابع gregorian_to_jalali استفاده کنیم :


list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
?>


در اینجا مشخص است که 3 متغیر سال، ماه و روز میلادی را به عنوان متغیر های ورودی
تابع grogorian_to_jalali وارد کرده ایم و چون خروجی این تابع از نوع آرایه است
توسط دستور list هر کدام از عناصر این آرایه را در یک متغیر قرار می دهیم . این
متغیر های حاوی اطلاعات سال،‌ ماه و روز همان تاریخ به شمسی می باشند . برای اینکه
آنها را به صورت قابل نمایش در یک متغیر قرار دهیم می توانیم این خط را به برنامه
اضافه کنیم :




$jdate = $jyear."/".$jmonth."/".$jday;


در صوتیکه مقدار $jdate را نمایش دهید همان تاریخ از نوع شمسی خواهد بود که چیزی
شبیه به مقدار زیر است :


4/9/1381

حال در صورتیکه بخواهید تاریخ همین لحظه را به صورت شمسی بدست بیاری می تونی
از برنامه زیر استفاده کنی :



list($gyear, $gmonth, $gday ) = preg_split ('/-/', date("Y-m-d"));
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);

$jdate = $jyear."/".$jmonth."/".$jday;


همانطور که می بینی از دستور date با آرگومان داده شده تاریخ فعلی سیستم
استخراج می شه و در همان روال توضیح داده شده تبدیل به شمسی شده و در متغیر $jdate
قرار می گیره .

r30011111
سه شنبه 02 فروردین 1390, 07:44 صبح
بسم الله الرّحمن الرّحيم
معرّفی یک نرم افزار پی اچ پی مفید و کاربردی برای تبدیل تاریخ و زمان
تاريخ هجري شمسي به عنوان يکي از دقيق ترين تاريخ ها ، براي استفاده در سايت هاي فارسي بسيار مناسب است. امّا متاسّفانه با توجّه به ميلادي بودن تاريخ سرور سايت ها ، دسترسي به تاريخ هجري شمسي با مشکلاتي همراه است. يکي از اين مشکلات ، عدم دسترسي به يک نرم افزار رايگان مبدّل تاريخ به هجري شمسي است که از دقّت بالايي نيز برخوردار باشد.
يکي از بهترين نرم افزارهاي رايگان در اين زمينه ، نرم افزار تقويم جلالي بود که سال ها قبل به زبان پي اچ پي نوشته شد و هم اکنون در اکثر سايت ها استفاده مي شود. امّا با گذشت زمان ، عيوب بسيار زيادي از آن نرم افزار قديمي ، آشکار شد. افراد زيادي اقدام به اصلاح فايل نرم افزار نمودند و نسخه هاي گوناگوني از آن منتشر شد که هر کدام با مشکلات و خطاهايي همراه بود.
پس از گذشت سال ها از ساخت نرم افزار قديمي تبديل تاريخ ، در راستاي پيشرفت کشور و توسعه ي فناوري اطّلاعات ، نياز به انتشار يک نرم افزار مشابه با دقّت و امکانات بيشتر ، به شدّت احساس مي شد. تا اين که سايت http://jdf.scr.ir (http://jdf.scr.ir/) در روز 22 بهمن 1389 ، اقدام به انتشار يک نرم افزار جديد ، مشابه با نرم افزار قديمي نمود و اوّلين نسخه ي آن را در امتداد نسخه ي قديمي ، نسخه ي 2.00 قرار داد.
اين نرم افزار جديد ، به دليل همنام بودن نام فايل و توابع آن با نرم افزار قديمي ، اين قابليت را دارد که به راحتي جايگزين فايل قديمي در سايت ها شود و مشکلي در سايت ايجاد نکند.
همچنين امکانات بسيار زيادي به نرم افزار جديد اضافه شد ، مثلاً قابليت محاسبه و نمايش : نام روز و ماه و سال به حروف _ نام باستاني برج ها _ نام حيواني سال ها _ تعداد روز و درصد گذشته و باقيمانده از سال _ نام و شماره ي فصل _ و امکانات بسيار زياد ديگري که مناسب با تاريخ هجري شمسي و زبان شيرين فارسي می باشد.
در اين نرم افزار ، پارامترهاي جديد زيادي اضافه شد تا بتوان عملکرد توابع را به صورت دقیق کنترل کرد و خروجي دلخواه را دريافت نمود. مثلاً قابليت تعيين زبان اعداد ، منطقه ي زماني و حتّي نوع خروجي بعضي توابع که به صورت آرايه باشد يا يک متن دلخواه.
توابع نيز به صورت کامل ، بازنويسي و اصلاح شدند. حجم نرم افزار جديد تا حدّ زيادي کاهش يافت و در مقابل ، سرعت و دقّت آن چندين برابر شد.
اين نرم افزار با داشتن ويژگي هايي همچون متن باز و رايگان بودن ، راه جديدي را براي استفاده از تاريخ هجري شمسي در فضاي مجازي باز کرد. افتخار مي کنيم که اکنون شاهد استفاده از تاريخ بسيار دقيق هجري شمسي در وب سايت ها هستيم و ديگر اجباري براي استفاده از تاريخ ميلادي وجود ندارد. انشاءالله در آينده ي نزديک بتوانيم با ابداع سيستم عامل ها ، زبان هاي برنامه نويسي و نرم افزار هاي بومي به دست خودمان ، کاملاً خودکفا و بي نياز از فناوري هاي غير بومي شويم. آن زمان نزديک است ، آنقدر نزديک که حتّي نمي توانيد تصوّرش را بکنيد.
نرم افزار جديد را هم اکنون مي توان از طريق سايت رسمي اين نرم افزار به نشاني http://jdf.scr.ir (http://jdf.scr.ir/) دريافت نمود. براي استفاده کنندگان از اين نرم افزار ، يک مجموعه ي کامل آموزشي ، ايجاد شده و در سايت http://jdf.scr.ir (http://jdf.scr.ir/) موجود است. همچنين اين سايت ، اقدام به جمع آوري نظرات و پيشنهادات شما براي ارتقاي بيشتر نرم افزار نموده و شما مي توانيد با گزارش اشکالات نرم افزار ، در اصلاح نسخه ي بعدي آن ، کمک کنيد. در اين سايت ، از تمامي ايده هاي مفيد و کاربردي ، حمايت مي شود.
با عضويت در خبرنامه ي سايت http://jdf.scr.ir (http://jdf.scr.ir/) به محض انشار نسخه ي جديدتري از اين نرم افزار ، مطّلع خواهيد شد.
اين سايت در زمينه ي گسترش استفاده از تاريخ دقيق هجري شمسي ، فقط به وب سايت ها اکتفا نکرده و اقدام به ايجاد تابع مجازي jdate براي وبلاگ ها نموده است. از اين پس ، طرّاحان قالب وبلاگ ها و وبلاگ نويسان قادر خواهند بود به صورت مجازي و بدون نياز به فضاي آپلود فايل نرم افزار ، از تابع jdate به صورت دلخواه ، خروجي مورد نظر خود را دريافت کرده و در صفحات وبلاگ خود استفاده نمایند.

براي کسب اطّلاعات بيشتر ، مي توانيد به سايت http://jdf.scr.ir (http://jdf.scr.ir/) مراجعه فرماييد و از آخرين اخبار مربوطه ، مطّلع شويد.