برگزیده های پرشین تولز

نمایش دهنده تاريخ ميخوام

ariaboy

کاربر تازه وارد
تاریخ عضویت
1 جولای 2003
نوشته‌ها
246
لایک‌ها
0
نمایش دهنده تاريخ ميخوام
هجري شمسي ، هجري قمري ، ميلادي

مثلا 27 بهمن 84 ، 14 جمادي الثاني 1420 ، 16 جولاي 2006

ممنون بچه ها .
عجله داشتم
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
به نقل از ariaboy :
نمایش دهنده تاريخ ميخوام
هجري شمسي ، هجري قمري ، ميلادي

مثلا 27 بهمن 84 ، 14 جمادي الثاني 1420 ، 16 جولاي 2006

ممنون بچه ها .
عجله داشتم
ميلادي و شمسيش که آسونه !
ولي قمري ...
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
میلادی:
PHP:
<?php
echo date("l j F Y");
?>
شمسی:
http://jdf.farsiprojects.com

قمری:
PHP:
<?php
class HijriCalendar
{
   function monthName($i) // $i = 1..12
   {
       static $month  = array(
           "Mِxنrrنm", "Safar", "Rabig-نl-ؤwwنl", "Rabig-نl-Axيr",
           "Cِmنd-نl-ؤwwنl", "Cِmنd-نl-Axيr", "Racنb", "قنًbنn",
           "Ramazan", "قنwنl", "Zِ-نl-Qنًdن", "Zِ-نl-Xiccن"
       );
       return $month[$i-1];
   }
   function GregorianToHijri($time = null)
   {
       if ($time === null) $time = time();
       $m = date('m', $time);
       $d = date('d', $time);
       $y = date('Y', $time);
       return HijriCalendar::JDToHijri(
           cal_to_jd(CAL_GREGORIAN, $m, $d, $y));
   }
   function HijriToGregorian($m, $d, $y)
   {
       return jd_to_cal(CAL_GREGORIAN,
           HijriCalendar::HijriToJD($m, $d, $y));
   }
   # Julian Day Count To Hijri
   function JDToHijri($jd)
   {
       $jd = $jd - 1948440 + 10632;
       $n  = (int)(($jd - 1) / 10631);
       $jd = $jd - 10631 * $n + 354;
       $j  = ((int)((10985 - $jd) / 5316)) *
           ((int)(50 * $jd / 17719)) +
           ((int)($jd / 5670)) *
           ((int)(43 * $jd / 15238));
       $jd = $jd - ((int)((30 - $j) / 15)) *
           ((int)((17719 * $j) / 50)) -
           ((int)($j / 16)) *
           ((int)((15238 * $j) / 43)) + 29;
       $m  = (int)(24 * $jd / 709);
       $d  = $jd - (int)(709 * $m / 24);
       $y  = 30*$n + $j - 30;
       return array($m, $d, $y);
   }
   # Hijri To Julian Day Count
   function HijriToJD($m, $d, $y)
   {
       return (int)((11 * $y + 3) / 30) +
           354 * $y + 30 * $m -
           (int)(($m - 1) / 2) + $d + 1948440 - 385;
   }
};
$hijri = HijriCalendar::GregorianToHijri( time() );
echo $hijri[1].'. '.HijriCalendar::monthName($hijri[0]).' '.$hijri[2];
?>
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
قمري رو بي خيال شو
39.gif


براي شمسي مي توني از تابع ميلاد استفاده کني که تو قسمت اسکريپت هاي اماده سرچ کني هست

براي ميلادي هم که ديگه راحته از توابع خود php مي توني استفاده کني مثل تابع date يا توايع strftime به شکل زير:
$year=(strftime("%Y"));
$mount=(strftime("%m"));
$day=(strftime("%d"));
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
و قمری ( درستش ) :

PHP:
<?
echo arabicDate('ar:l d/F - h:iA', time());

function arabicDate($format, $timestamp) {
   /*
       written by Salah Faya ([email protected]) http://www.php4arab.info/scripts/arabicDate
         $format:
               [*]hj|ar|en:[jdl][Fmn][Yy][Aa]  (php.date function handles the rest chars)
               * will add <span dir=rtl lang=ar-sa>..</span>
           examples:
               echo arabicDate('hj:l d-F-Y هـ', time()); 
               echo arabicDate('ar:l d/F - h:iA', time());
   */
   $format=trim($format);
   if (substr($format,0,1)=='*') {
               $use_span=true;
       $format=substr($format,1);
       } else $use_span=false;
   $type=substr($format,0,3);

   $arDay = array("Sat"=>"السبت", "Sun"=>"الأحد", "Mon"=>"الإثنين", "Tue"=>"الثلاثاء",
 "Wed"=>"الأربعاء", "Thu"=>"الخميس", "Fri"=>"الجمعة");
   $ampm=array('am'=>'صباحا','pm'=>'مساء');
   list($d,$m,$y,$dayname,$monthname,$am)=explode(' ',date('d m Y D M a', $timestamp));
   if ($type=='hj:') {
       if (($y>1582)||(($y==1582)&&($m>10))||(($y==1582)&&($m==10)&&($d>14))) {
           $jd=ard_int((1461*($y+4800+ard_int(($m-14)/12)))/4);
           $jd+=ard_int((367*($m-2-12*(ard_int(($m-14)/12))))/12);
           $jd-=ard_int((3*(ard_int(($y+4900+ard_int(($m-14)/12))/100)))/4);
           $jd+=$d-32075;
       } else    {
           $jd = 367*$y-ard_int((7*($y+5001 + ard_int(($m-9)/7)))/4) + ard_int((275*$m)/9)+$d+1729777;
       }
       $l=$jd-1948440+10632;
       $n=ard_int(($l-1)/10631);
       $l=$l-10631*$n+355;  // Correction: 355 instead of 354
       $j=(ard_int((10985-$l)/5316)) * (ard_int((50*$l)/17719)) + (ard_int($l/5670)) * (ard_int((43*$l)/15238));
       $l=$l-(ard_int((30-$j)/15)) * (ard_int((17719*$j)/50)) - (ard_int($j/16)) * (ard_int((15238*$j)/43))+29;
       $m=ard_int((24*$l)/709);
       $d=$l-ard_int((709*$m)/24);
       $y=30*$n+$j-30;       
       $format=substr($format,3);
       $hjMonth = array("محرم", "صفر", "ربيع أول", "ربيع ثاني",
 "جماد أول", "جماد ثاني", "رجب", "شعبان", "رمضان", "شوال", "ذو القعدة", "ذو الحجة");
       $format=str_replace('j', $d, $format);
       $format=str_replace('d', str_pad($d,2,0,STR_PAD_LEFT), $format);
       $format=str_replace('l', $arDay[$dayname], $format);
       $format=str_replace('F', $hjMonth[$m-1], $format);
       $format=str_replace('m', str_pad($m,2,0,STR_PAD_LEFT), $format);
       $format=str_replace('n', $m, $format);
       $format=str_replace('Y', $y, $format);
       $format=str_replace('y', substr($y,2), $format);
       $format=str_replace('a', substr($ampm[$am],0,1), $format);
       $format=str_replace('A', $ampm[$am], $format);
   } elseif ($type=='ar:') {
       $format=substr($format,3);
       $arMonth=array("Jan"=>"يناير", "Feb"=>"فبراير","Mar"=>"مارس", "Apr"=>"ابريل", "May"=>"مايو",
"Jun"=>"يونيو", "Jul"=>"يوليو", "Aug"=>"اغسطس", "Sep"=>"سبتمبر", "Oct"=>"اكتوبر",
 "Nov"=>"نوفمبر", "Dec"=>"ديسمبر");
       $format=str_replace('l', $arDay[$dayname], $format);
       $format=str_replace('F', $arMonth[$monthname], $format);
       $format=str_replace('a', substr($ampm[$am],0,1), $format);
       $format=str_replace('A', $ampm[$am], $format);
       }
   $date = date($format, $timestamp);
   if ($use_span) return '<span dir="rtl" lang="ar-sa">'.$date.'</span>';
   else return $date;
}

function ard_int($float) {
       return ($float < -0.0000001) ? ceil($float-0.0000001) : floor($float+0.0000001);
}
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
سعید جان جواب منو ندیدی نه؟؟؟؟؟
حالا که اینطور شد: از این توابع برای میلادی استفاده کن: date() mktime() gettime() strtodate() strftime() و ...
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
آره تابع پدرام بهتره... اونی که من گذاشتم تویه manual بود!!
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
اين قمريه درسته؟
باگ ماگ نداره؟
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
باگ داره
این مثله اون تاریخ جلالی نیست یعنی مثله تابع تاریخ پی اچ پی نیست !
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
به نقل از sama_sally :
سعید جان جواب منو ندیدی نه؟؟؟؟؟
حالا که اینطور شد: از این توابع برای میلادی استفاده کن: date() mktime() gettime() strtodate() strftime() و ...
نه سالار جان ظاهرا همزمان با هم پست زديم اما مال شما زودتر رسيده
73.gif
 

Motahari

Registered User
تاریخ عضویت
22 فوریه 2003
نوشته‌ها
693
لایک‌ها
3
و قمری ( درستش ) :

PHP:
<?
echo arabicDate('ar:l d/F - h:iA', time());

function arabicDate($format, $timestamp) {
   /*
       written by Salah Faya ([email protected]) http://www.php4arab.info/scripts/arabicDate
         $format:
               [*]hj|ar|en:[jdl][Fmn][Yy][Aa]  (php.date function handles the rest chars)
               * will add <span dir=rtl lang=ar-sa>..</span>
           examples:
               echo arabicDate('hj:l d-F-Y هـ', time()); 
               echo arabicDate('ar:l d/F - h:iA', time());
   */
   $format=trim($format);
   if (substr($format,0,1)=='*') {
               $use_span=true;
       $format=substr($format,1);
       } else $use_span=false;
   $type=substr($format,0,3);

   $arDay = array("Sat"=>"السبت", "Sun"=>"الأحد", "Mon"=>"الإثنين", "Tue"=>"الثلاثاء",
 "Wed"=>"الأربعاء", "Thu"=>"الخميس", "Fri"=>"الجمعة");
   $ampm=array('am'=>'صباحا','pm'=>'مساء');
   list($d,$m,$y,$dayname,$monthname,$am)=explode(' ',date('d m Y D M a', $timestamp));
   if ($type=='hj:') {
       if (($y>1582)||(($y==1582)&&($m>10))||(($y==1582)&&($m==10)&&($d>14))) {
           $jd=ard_int((1461*($y+4800+ard_int(($m-14)/12)))/4);
           $jd+=ard_int((367*($m-2-12*(ard_int(($m-14)/12))))/12);
           $jd-=ard_int((3*(ard_int(($y+4900+ard_int(($m-14)/12))/100)))/4);
           $jd+=$d-32075;
       } else    {
           $jd = 367*$y-ard_int((7*($y+5001 + ard_int(($m-9)/7)))/4) + ard_int((275*$m)/9)+$d+1729777;
       }
       $l=$jd-1948440+10632;
       $n=ard_int(($l-1)/10631);
       $l=$l-10631*$n+355;  // Correction: 355 instead of 354
       $j=(ard_int((10985-$l)/5316)) * (ard_int((50*$l)/17719)) + (ard_int($l/5670)) * (ard_int((43*$l)/15238));
       $l=$l-(ard_int((30-$j)/15)) * (ard_int((17719*$j)/50)) - (ard_int($j/16)) * (ard_int((15238*$j)/43))+29;
       $m=ard_int((24*$l)/709);
       $d=$l-ard_int((709*$m)/24);
       $y=30*$n+$j-30;       
       $format=substr($format,3);
       $hjMonth = array("محرم", "صفر", "ربيع أول", "ربيع ثاني",
 "جماد أول", "جماد ثاني", "رجب", "شعبان", "رمضان", "شوال", "ذو القعدة", "ذو الحجة");
       $format=str_replace('j', $d, $format);
       $format=str_replace('d', str_pad($d,2,0,STR_PAD_LEFT), $format);
       $format=str_replace('l', $arDay[$dayname], $format);
       $format=str_replace('F', $hjMonth[$m-1], $format);
       $format=str_replace('m', str_pad($m,2,0,STR_PAD_LEFT), $format);
       $format=str_replace('n', $m, $format);
       $format=str_replace('Y', $y, $format);
       $format=str_replace('y', substr($y,2), $format);
       $format=str_replace('a', substr($ampm[$am],0,1), $format);
       $format=str_replace('A', $ampm[$am], $format);
   } elseif ($type=='ar:') {
       $format=substr($format,3);
       $arMonth=array("Jan"=>"يناير", "Feb"=>"فبراير","Mar"=>"مارس", "Apr"=>"ابريل", "May"=>"مايو",
"Jun"=>"يونيو", "Jul"=>"يوليو", "Aug"=>"اغسطس", "Sep"=>"سبتمبر", "Oct"=>"اكتوبر",
 "Nov"=>"نوفمبر", "Dec"=>"ديسمبر");
       $format=str_replace('l', $arDay[$dayname], $format);
       $format=str_replace('F', $arMonth[$monthname], $format);
       $format=str_replace('a', substr($ampm[$am],0,1), $format);
       $format=str_replace('A', $ampm[$am], $format);
       }
   $date = date($format, $timestamp);
   if ($use_span) return '<span dir="rtl" lang="ar-sa">'.$date.'</span>';
   else return $date;
}

function ard_int($float) {
       return ($float < -0.0000001) ? ceil($float-0.0000001) : floor($float+0.0000001);
}

اين كه مشكل داره.
همون كدهاي sama_sally رو تست كردم. ظاهرش درست جواب داد.
 
بالا