PDA

View Full Version : کار با تابع jdf



H:Shojaei
شنبه 12 اردیبهشت 1394, 23:26 عصر
سلام...
میخوام تمام روزهای سال و همیچنین هفته ها و ماهها و این که کدوم ماه ها 31 روزه هستن یا 30 روزه یا این که مثلا روز 256 از سال چند شنبه میشه و ...
رو از تابع jdf استخراج کنم و مثلا بریزم تو یک آرایه یا نمایش بدم میشه؟
مثلا اینطوری:
امسال:
1 شنبه 1/1/1394 هفته اول
2 یک شنبه 2/1/1394 هفته اول
..
.
.
.
.
365 پنج شنبه 30/12/1394 هفته انم
سال بعد:
1 جمعه 1/1/1395 هفته اول
2 شنبه 2/1/1395 هفته اول
..
.
.
.
.
365 دوشنبه 30/12/1395 هفته انم

ostadsho
یک شنبه 13 اردیبهشت 1394, 12:20 عصر
include('jdf.php');
$start = new DateTime('2014-03-21 00:00:00');
$end = new DateTime('2015-03-20 23:59:59');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);


$week_number=1;
$i=1;
$month_number=1;

foreach ($period as $dt)
{
$year= $dt->format("Y");
$month= $dt->format("m");
$day=$dt->format("d");
$day_word=$dt->format("l");
$dt->format("Y-m-d");
$day_word_shamsi='';



$shamsi=gregorian_to_jalali($year,$month,$day);

$month_number_new=$shamsi[1];
if($month_number_new!=$month_number){$week_number= 1;}

else{

switch($i){
case $i>=1 and $i<=7:{$week_number=1;};break;
case $i>=8 and $i<=14:{$week_number=2;};break;
case $i>=15 and $i<=21:{$week_number=3;};break;
case $i>=22 and $i<=28:{$week_number=4;};break;


}

}
$i++;


switch($day_word){
case "Friday":{$day_word_shamsi="جمعه";};break;
case "Saturday":{$day_word_shamsi="شنبه";};break;
case "Sunday":{$day_word_shamsi="یک شنبه";};break;
case "Monday":{$day_word_shamsi="دوشنبه";};break;
case "Tuesday":{$day_word_shamsi="سه شنبه";};break;
case "Wednesday":{$day_word_shamsi="چهارشنبه";};break;
case "Thursday":{$day_word_shamsi="پنج شنبه";};break;
}


echo $day_word_shamsi.','.$shamsi[0].'/'.$shamsi[1].'/'.$shamsi[2].', هفته'.$week_number;

echo '<br>';


}















توضیح اینکه:

تاریخ 1 فروردین رو به میلادی به جای start قرار میدیم.

تاریخ آخرین روز سال رو هم به جای end قرار میدیم (باز به میلادی)


خروجی به عنوان نمونه:

جمعه,1393/1/1, هفته1

arenaw
یک شنبه 13 اردیبهشت 1394, 14:36 عصر
سلام. برای اینکه هفته هم به صورت حروف نمایش داده بشه، میتونید از فانکشنهایی که اعداد فارسی رو به حروف استفاده میکنن استفاده کنید.



include 'jdf.php';
$start = jmktime(0, 0, 0, 1, 1, 1393); $end = jmktime(0, 0, 0, 1, 1, 1394);
$week = 1;
$day = 1;
for( $i=$start; $i<=$end; $i+=86400 ){
echo jdate('l j/n/Y هفته ',$i). $week. '<br>';
if( $day++ % 7 == 0 )
$week++;
}

H:Shojaei
یک شنبه 13 اردیبهشت 1394, 23:18 عصر
اسپم هم میشه ولی جای تشکر داره ممنون دوستان...