کمک در مورد jdf و توابع مورد نیاز

.:: Ali ::.

Member
سلام به دوستان .

والا من هر کاری کردم و هر چی سرچ کردم نتونستم تابع دلخواهمو بنویسم .

اولا" سوال من اینه که منبعی وجود داره تا توابع بیشتری از jdf قابل دسترس باشه ؟

ثانیا" توابعی که به نظرم مورد نیازه و نتونستم درش بیارم اینها هستن :

1 - دریافت روز اول و آخر هر ماه میلادی و تبدیلش به DATE ، (قابل انتقال به دیتبیس)
2 - دامنه ی ماه فعلی ، مثلا" اگه امروز 16 آگوست ، برابر با 25 مرداد هستش ، دامنه ی اول و آخر ماه (چه 29 چه 30 و 31 روزه) چطور قابل استخراجه ؟
3 - هفته ی فعلی ، مثلا" اگه امروز پنج شنبست و اول هفته با شنبه شروع می شه ، دامنه ی این تاریخ رو چطور می شه از میلادی به شمسی و برعکس پیدا کرد ؟

بل ()mktime و ()jmktime کلی سرو کله زدم ، اما به نتیجه نرسیدم ، از همه ی دوستانی که دوستانه رفتار می کنن ممنونم .
 

.:: Ali ::.

Member
چیزی که من می خواستم این بود :

امروز : شنبه ۲۷ مرداد ۱۳۸۶
دیروز :جمعه ۲۶ مرداد ۱۳۸۶
پریروز : پنجشنبه ۲۵ مرداد ۱۳۸۶
اول ماه: دوشنبه ۰۱ مرداد ۱۳۸۶
آخر ماه: چهارشنبه ۳۱ مرداد ۱۳۸۶
اولین روز هفته ی پیش: شنبه ۲۰ مرداد ۱۳۸۶
آخرین روز هفته ی پیش: جمعه ۲۶ مرداد ۱۳۸۶

متاسفانه یا خوشبختانه کسی بلد نبود (!) و باعث شد بدون کمک کسی دست به کار شم . روشی رو که استفاده کردم می گم شاید کسی به دردش بخوره .

اول داخل فایل jdf و تابع اصلی ()jdate یه تغییری دادم برای اینکه روزای هفته رو به شماره به من برگردونه :


PHP:
			case "n":
				$result1=date("l",$need);
				if($result1=="Saturday") $result1= 1;
				else if($result1=="Sunday") $result1=2;
				else if($result1=="Monday") $result1=3;
				else if($result1=="Tuesday") $result1=4;
				else if($result1=="Wednesday") $result1=5;
				else if($result1=="Thursday") $result1=6;
				else if($result1=="Friday") $result1=7;
				$result.=$result1;
				break;

و باقی محاسباتی که برای در آوردن اولین و آخرین روز هفته ، اولین و آخرین روز ماه استفاده کردم :
PHP:
$dbToday = $db->getVariable("SELECT today FROM stats_data");
$dbToday = preg_split('/-/', $dbToday);

foreach($dbToday as $dates) {
		$gyear = $dbToday[0];
		$gmonth = $dbToday[1];
		$gday = $dbToday[2];
}

$todayMK = mktime(0,0,0,$gmonth,$gday,$gyear);

$daysOfThisMonth = last_day ($gmonth,$gday,$gyear);
$jday = g2j('d',$todayMK);
$jdayMinus = Convertnumber2english($jday)-1;
$jlweek = g2j('n',$todayMK);

switch ($jlweek) {
	case 1 :
		$jweekMinus = -7;
		break;
	case 2 :
		$jweekMinus = -8;
		break;
	case 3 :
		$jweekMinus = -9;
		break;
	case 4 :
		$jweekMinus = -10;
		break;
	case 5 :
		$jweekMinus = -11;
		break;
	case 6 :
		$jweekMinus = -12;
		break;
	case 7 :
		$jweekMinus = -13;
		break;
}

$yesterdayMK = mktime(0,0,0,$gmonth,$gday-1,$gyear);
$TDByesterdayMK = mktime(0,0,0,$gmonth,$gday-2,$gyear);
$FOmonthMK = mktime(0,0,0,$gmonth,$gday-$jdayMinus,$gyear);
$LOmonthMK = mktime(0,0,0,$gmonth,$gday-$jdayMinus+$daysOfThisMonth-1,$gyear);
$SOLweekMK = mktime(0,0,0,$gmonth,$gday+$jweekMinus,$gyear);
$EOLweekMK = mktime(0,0,0,$gmonth,$gday+$jweekMinus+6,$gyear);

$Jtoday = "امروز : ". g2j('l d M Y',$todayMK);
$Jyesterday = " دیروز :". g2j('l d M Y',$yesterdayMK);
$JTDByesterday = "پریروز : ". g2j('l d M Y',$TDByesterdayMK);
$fFOmonth = "اول ماه: ". g2j('l d M Y',$FOmonthMK);
$fLOmonth = "آخر ماه: ". g2j('l d M Y',$LOmonthMK);
$fSOLweek = "اولین روز هفته ی پیش: ". g2j('l d M Y',$SOLweekMK);
$fEOLweek = "آخرین روز هفته ی پیش: ". g2j('l d M Y',$EOLweekMK);

لازمه که بگم این کد خام هستش و نیاز به جاسازی در یک کلاس داره ، همچنین این کد برای همه ی سال ها دقیق کار می کنه :

امروز : دوشنبه ۰۱ فروردین ۱۳۹۰
دیروز :یکشنبه ۲۹ اسفند ۱۳۸۹
پریروز : شنبه ۲۸ اسفند ۱۳۸۹
اول ماه: دوشنبه ۰۱ فروردین ۱۳۹۰
آخر ماه: چهارشنبه ۳۱ فروردین ۱۳۹۰
اولین روز هفته ی پیش: شنبه ۲۱ اسفند ۱۳۸۹
آخرین روز هفته ی پیش: جمعه ۲۷ اسفند ۱۳۸۹


و بالعکسش هم (به میلادی) توسط تابع ()jmktime و همچنین دامنه ی ماه پیش یا چندین ماه پیش ، و چندین هفته ی پیش ، ماه ها و هفته های آینده (برای پیش بینی) به راحتی قابل انجامه ! این برنامه برای سیستم آمارگیری فارسی بسیار مفیده .

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

vaheb

Member
لينك آخرين نسخه رو داري ؟؟؟؟؟؟؟؟؟؟؟؟؟ ياهمين نسخه !
 

جدیدترین ارسال ها

بالا