تعريف شبكه فن‌آوري اطلاعات به عنوان صفحه اصلي

جمعه 28 اسفند 1388
تعداد كاربران آنلاين: 42

فهرست

  اخبار
  مقالات
  مصاحبه‌ها
  نكته‌ها و ترفندها
  قوانين و مقررات
  دريافت نرم‌افزار
  آموزش
  نمايشگاه ‌و همايش‌
  بازيهاي رايانه‌اي
  گزارش
  تبـليغــات
حضرت محمد (ص)

عمل اندك همراه با دانش، بهتر از عمل بسیار همراه با نادانی است.


شبكه يكپارچه سيگنالينگ كشور تا پايان سال جاري به بهره برداري مي رسد            روان شناسی رنگ ها در طراحی صفحات وب            بليت قطارهاي مسافربري از طريق اينترنت فروخته مي‌شود            توسعه پردازشگر گرافیک با کارآیی بالا توسط شرکت Matsushita            به زندانيان خوشرفتار، بازي ويديويي پاداش داده مي شود            ويروس w32.nolor به زودي فعاليت خودش را آغاز خواهد كرد، اين ويروس راس ساعت ‌£            دو شركت اپل و مايكروسافت در مبارزه Stearming Madia، به حالت موازنه رسيده اند            يك چهارم برنامه‌هاي وب داراي آسيب‌پذيري‌هاي خطرناك هستند.            ثبت ‎نام‎آزمون‎ كارشناسي‎ ارشد دانشگاه ‎آزاد            تفاوت و کاربرد آنتي ويروس و Firewall - بخش اول            كارمندان از طريق تلفن همراه كنترل مي شوند            نحوه تنظيمات Internet explorer            آشنایی با ملزوملت شبکه            ال جي پيشرفته ترين لپ تاپ را در خاورميانه عرضه مي كند            ورود با چند ID بطور همزمان در Yahoo Messanger            سوء استفاده هكرها از سيستم عامل كروم            سرويس‌هاي چت، پيام‌ كوتاه و وبلاگ‌ها، ترفندهاي جديد اسپمرها براي فريب كاربران            700 ميليون نفر تا سال آينده از طريق تلفن همراه قادر به چت مي‌شوند            منتظر سيستم عامل جديد اپل باشيد            2 روش نصب ويندوز XP            

استفاده از تابع تبدیل تاریخ شمسی به میلادی و برعکس
پنج شنبه,13 مهر 1383 (تعداد دفعات خوانده شده:30703)

منبع: http://www.iranphp.net

استفاده از تابع تبدیل تاریخ شمسی به میلادی و بالعکس در PHP


برای دریافت توابع کافیست که کد توابع را از این آدرس دریافت کنید :
http://www.iranphp.net/modules/sections/index.php?op=viewarticle&artid=19


بوسیله یک Copy و Paste متن این توابع را درون یک فایل جدید بنام به عنوان مثال
jalali.php ذخیره کنید .

برای اینکه بتوانید از این توابع در برنامه خود استفاده کنید کافیست در ابتدای
برنامه خود دستور زیر را وارد کنید :



با این کار دو تابع با نامهای gregorian_to_jalali و jalali_to_gregorian در اختیار
شما قرار می گیرند که به ترتیب برای تبدیل تاریخ میلادی به شمسی و شمسی به میلادی
مورد استفاده قرار می گیرند .


برای اینکه بتوانم نحوه استفاده از این دو تابع را شرح دهم به ذکر مثالهایی در
این مورد می پردازم .


1- تبدیل تاریخ میلادی به شمسی

برای این کار باید از تابع 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
قرار می گیرد .


برای اینکه کارتان کمی ساده تر شود می توانید تابعی به شکل زیر تعریف کنید :


function get_jalali_date( $gdate='now' )
{

if ( $gdate == 'now' )
{
list($gyear, $gmonth, $gday ) = preg_split ('/-/', date("Y-m-d"));
}
else
{
list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', $gdate );
}
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
return $jyear."/".$jmonth."/".$jday;

}
?>



تابعی با نام get_jalali_date تعریف کردیم که یک متغیر به عنوان ورودی دریافت
می کند که این همان تاریخ به میلادی است . در صوتیکه هنگام صدا کردن این تابع تاریخ
میلادی را به عنوان ورودی برای این تابع وارد کرده باشید،‌ تابع همان تاریخ را
به شمسی تبدیل کرده و در خروجی بر می گرداند،‌ ولی اگر هیچ متغیری به عنوان ورودی
به این تابع ندهید،‌ تاریخ همان لحظه را به شمسی برای شما در خروجی بر می گرداند
.

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





و یا برای بدست آوردن تاریخ همین لحظه و قرار دادن آن در یک متغیر اینگونه عمل
می کنیم :





همانطور که می بینید کار بسیار ساده تر شد.



2- تبدیل تاریخ شمسی به میلادی :

با توضیحاتی مشابه می توانید از تابع jalali_to_gregorian استفاده کنید . مانند
تابع قبل این تابع هم سه متغیر به عنوان ورودی دریافت می کند که عبارتند از سال،
ماه و روز که همگی به شمسی هستند . سپس در جواب آرایه ای شامل سه قسمت که سال،‌
ماه و روز میلادی همان تاریخ هستند را بر می گرداند .



برای نمونه اگر بخواهیم تاریخ 4/9/1381 را به میلادی تبدیل کنیم کاری مشابه برنامه
زیر انجام می دهیم :



$jdate="1381/9/4";
list( $jyear, $jmonth, $jday ) = preg_split ( '///', $jdate );
list( $gyear, $gmonth, $gday ) = jalali_to_gregorian($jyear, $jmonth, $jday);
$gdate = $gyear."-".$gmonth."-".$gday;
?>



تنها تفاومت موجود با تابع بالا استفاده از / برای جداسازی اجزاء تاریخ شمسی می
باشد . همانطور که گفتیم تابع preg_split آرگومان اول خود که همان delimiter (‌
جدا کننده )‌ می باشد را به صورت regex می گیرد که باید بین دو علامت / باشد ،‌
در اینجا باید قبل / که نشان دهنده کاراکتر delimiter ما می باشد یک \ (‌back slash
)‌ قرار می دهیم که جداکننده مشخص باشد .



توضیح خاص دیگری هم ندارد و همانند تابع تبدیل میلادی به شمسی اینجا هم می توانیم
تابعی با نام get_gregorian_date بسازیم که کار را راحتتر کند . ایجاد این تابع را به خواننده واگذار می کنم .

 

نسخه قابل چاپ              برگشت

عناوين مرتبط
1- ارسال هرزنامه‌ها به بيشترين حد خود در تاريخ رسيد جمعه,10 مرداد 1388
2- تاريخ تعطيلي سرويس Geocities ياهو تعيين شد پنج شنبه,20 تير 1388
3- انتشار نقشه‌هاي تاريخي ژاپن در گوگل جنجال‌برانگيز شد یک شنبه,15 ارديبهشت 1388
4- تاريخ دقيق عرضه Palm Pre مشخص شد. شنبه,25 فروردين 1388
5- ارائه بلوتوث 3.0 در تاريخ 21 آوريل ؟ چهارشنبه,22 فروردين 1388
6- صورتحساب دوره جديد مشتركان همراه اول از تاريخ يكم مرداد تا يكم مهرماه سال جاري منتشر شد. یک شنبه,17 مهر 1387
7- بزرگ‌ترين نمونه‌ي شبيه‌سازي رايانه‌يي يك شهر تاريخي انجام شد دوشنبه,22 خرداد 1386
8- بهترين بازي‌هاي ماجرايي تاريخ پنج شنبه,29 ارديبهشت 1386
9- نوكيا بزرگترين سفارش تاريخ فعاليت خود را دريافت كرد شنبه,23 ارديبهشت 1386
10- سايت GOOGLE EARTH نقشه هاي تاريخي آنلاين ارائه مي كند سه شنبه,27 آبان 1385
11- هديه‌ي 15ميليون دلاري بيل‌ گيتس به موزه‌ي تاريخ رايانه شنبه,9 آبان 1385
12- آشنايي با تاريخچه‌ي موتورهاي جستجو و آنچه از گوگل نمي‌دانيد! دوشنبه,13 تير 1385
13- گوگل فيلم‌هاي تاريخي جهان را در اينترنت به نمايش مي‌گذارد یک شنبه,6 اسفند 1384
14- ياهو بارديگر اقدام به قانون‌شكني وافشاي جزييات محرمانه‌ي كاربران اينترنتي كرده است دوشنبه,23 بهمن 1384
15- تاريخ شروع به كار رسمي ويندوز ويستا را حدس بزنيد و جايزه بگيريد! دوشنبه,11 دي 1384



نظرات كاربران
مهدي - پنج شنبه,13 مهر 1383
باسلام
برايي عنوان گفته شده يك راه حل پيشپا افتاده كه بي علت همنيست...
تبديل تاريخ هجري شمسي به ميلادي وبلعكس
براي تبديل اين دوتاريخ بايد بدانيم كه هجرت پيامبر اكرم درسال 621 ميلا دي صورت گرفته وچون شروع سال ميلادي از11/10/ ميباشد
ولذا اگر تاريخ موردنظر تادهم دي ماه باشد سال هجري شمسي راباعدد 621 واگر بعد ازآن باشدباعدد622 جمع مي نماييم وسال ميلادي
مقارن آن سال شمسي بدست مي آيد.
مثال1 :
سال شروع انقلاب اسلامي چون دربهمن ماه بوده يعني از11/10 گذشته پس عدد 622 رادرنظر مي گيريم
1979 =622+1357 يا 1357=622-1979
مثال2:
ميلادي قبل از11دي 2004=621+1383
ميلادي بعد از11دي 2005=622+1383






با قراردادن كد ذيل مي‌توانيد از سيستم نمايشگار اخبار ما بصورت رايگان در سايت/وبلاگ خود استفاده كنيد
 

معرفي شبكه فن آوري اطلاعات ايران به يك دوست

ايميل شما:
ايميل دوستتان:

تبـليغــات

تبليغات داخلي ...


حاميان ما ...


نقل اخبار/اطلاعات ساير سايتها/پايگاه‌ها لزوما به معناي تائيد آنها نيست، بلكه مسئوليت تمامي مطالب ارسالي به عهده پايگاه‌هاي مربوطه مي‌باشد
نقل مطالب سايت با ذکر منبع (www.IRITN.com) و نام نويسنده مجاز است.
All rights reserved. Copyright 2003-2010 by KEYANA IT Co.  Computed in 0.06 seconds
(Best Viewed With IE 6.0 or higher (1024x768