PDA

View Full Version : سوال: ایجاد آرشیو هفتگی و قرار دادن این آرشیو در سمت راست وب سایت



idocsidocs
یک شنبه 08 مرداد 1391, 16:38 عصر
من می خوام یه آرشیو هفتگی از مطالب وب سایت درست کنم و این آرشیو رو سمت راست وب سایت قرار بدم.

لطفا بگید چطور باید این کار رو انجام بدم؟

desatir7316
یک شنبه 08 مرداد 1391, 21:58 عصر
دوست عزیز اصلا متوجه نشدم
خوب آرشیوت رو سمت راست قرار بده
اگه کار خاصی می خوای انجام بدی و و کدت یه جای جواب نمیده اونو رو بگو
خیلی کلی گفتی

pejman_view
یک شنبه 08 مرداد 1391, 23:14 عصر
به ترتیب اینکارها رو بکن

یک کمینه از تاریخ و یک بیشینه هم بگیر
تعداد ماه ها و سال ها رو در بیار به ترتیب بچینشون
یک لینک برای جستجوی هر ماه به لینک ها بده مثلاً localhost/archive/2012/may
بعد دیگه فقط کار بعدی اینه طوری ست کنی که اون لینک تمام رکورد های اون ماه را نشون بده.

با آرزوی موفقیت

idocsidocs
دوشنبه 09 مرداد 1391, 00:03 صبح
تعداد ماه ها و سال ها رو در بیار به ترتیب بچینشون
این کار رو چطور باید انجام بدم؟

مسئله اینه که من زمان رو بر حسب تایم استمپ یونیکس ذخیره می کنم و باید آرشیو رو به شمسی هم تبدیل کنم.

Unique
دوشنبه 09 مرداد 1391, 01:29 صبح
کافیه زمان فعلی را بگیری به صورت timestamp بعدش مقدار 60*60*24*7 را ازش کسر کنی ! و بریزی توی latestweek$ حالا یه query بدی :

select * from posts where date >= $latestweek

pejman_view
دوشنبه 09 مرداد 1391, 11:23 صبح
سلام

اول داشتم توضیحات می نوشتم بیخیال شدم همه اشو پاک کردم واست نمونه اشو بصورت کد نوشتم اگر مشکلی داشتی بگو:

//in timestamp har o mituni be rahati feedeshoon koni ba ye query sade az database melse "SELECT min(date) AS min_date and max(dat) AS max_date from articles"
$min_date = 1297317600;
$max_date = 1343627523;
$bt_date = $max_date - $min_date;

//mah va sal ro be timestamp tabdil kardam
$month = 30*24*60*60;
$year = 12*$month;

//tedade salharo bedast miyaram
$ct_year = floor($bt_date/$year);

//kamine va bishine sal va maham be dast miyaram
$min_year= date("Y", $min_date);
$max_year= date("Y", $max_date);
$min_month = date("m", $min_date);
$max_month = date("m", $max_date);

//moteghayere i ro min year dar nazar gereftam
$i=$min_year;

//dar yek halghe sal haro mishmaram az min_year shoroo mishe va max_year tamoom mishe
for($i;$i<=$max_year;$i++){

echo 'Year '.$i.'<br />';


if($i==$min_year){ //agar moteghayere i taaze karesho shoroo karde bashe az mahe shoroo ra mosaviye mahe shoroo e dar min_date gharar midim va ta borje 12 edame peyda mikone
$int_month = (int)$min_month;
$fin_month = 12;
}elseif ($i==$max_year){ //agar i be akharesh resid va be sale nahayee resid faghat az borje 1 shoroo mikone ta borje nahayee tamoomesh mikone
$int_month = 1;
$fin_month = (int)$max_month;
}else{ //agar too salhaye miyani bashe yani na aval va na akhar az borje 1 shoroo mishe ta borje 12 edame peyda mikone
$int_month = 1;
$fin_month = 12;
}
for($int_month;$int_month<=$fin_month;$int_month++){ //dar inja tebghe oon sharte bala shoroo mikone be shomordane borj ha
$stringmonth = date("F", mktime(0, 0, 0, ($int_month))); // dar inja adade borj ro be esme borj taghir dadam to moteghayer rikhtam
echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-'.$stringmonth.' '.$int_month.'<br />'; //borj + adadesh o chap kardam
}
}

?>
اما بطرز عجیبی خروجی مانند زیر بود:
Year 2011
-March 2
-March 3
-April 4
-May 5
-June 6
-July 7
-August 8
-September 9
-October 10
-November 11
-December 12
Year 2012
-January 1
-March 2
-March 3
-April 4
-May 5
-June 6
-July 7
عجیب بودنش بخاطر اینکه برج 2 رو مارچ زده در صورتی که در میلادی برج 2 مصادف با فوریه است !

یا علی موفق باشید

Unique
سه شنبه 10 مرداد 1391, 04:06 صبح
قائدتا شما باید paging بگذاری یا کاربر بگه ماله چند هفته گذشته را میخواد ! شما کافیه اول روز پایان هفته را تعین کنی ! که یا 7 روز از هر روی که فعلا در اون هستیم هست یا روز آخر هفته جاری ! مثلا اگه 4 شنبه هست و جمعه روز آخره ! باید3 روز بعد را به عنوان آخرین بگیریم ! حالا صفحه اول میشه تاریخ های بزرگتر یا مساوی با (روز آخر مورد نظر - (60*60*24*7)) روز آخر را برای صفحه های دوم و سوم نیز میتونی براحتی محاسبه کنی !