View Full Version : سوال: ایجاد آرشیو هفتگی و قرار دادن این آرشیو در سمت راست وب سایت
idocsidocs
یک شنبه 08 مرداد 1391, 17:38 عصر
من می خوام یه آرشیو هفتگی از مطالب وب سایت درست کنم و این آرشیو رو سمت راست وب سایت قرار بدم.
لطفا بگید چطور باید این کار رو انجام بدم؟
desatir7316
یک شنبه 08 مرداد 1391, 22:58 عصر
دوست عزیز اصلا متوجه نشدم
خوب آرشیوت رو سمت راست قرار بده
اگه کار خاصی می خوای انجام بدی و و کدت یه جای جواب نمیده اونو رو بگو
خیلی کلی گفتی
pejman_view
دوشنبه 09 مرداد 1391, 00:14 صبح
به ترتیب اینکارها رو بکن
یک کمینه از تاریخ و یک بیشینه هم بگیر
تعداد ماه ها و سال ها رو در بیار به ترتیب بچینشون
یک لینک برای جستجوی هر ماه به لینک ها بده مثلاً localhost/archive/2012/may
بعد دیگه فقط کار بعدی اینه طوری ست کنی که اون لینک تمام رکورد های اون ماه را نشون بده.
با آرزوی موفقیت
idocsidocs
دوشنبه 09 مرداد 1391, 01:03 صبح
تعداد ماه ها و سال ها رو در بیار به ترتیب بچینشون
این کار رو چطور باید انجام بدم؟
مسئله اینه که من زمان رو بر حسب تایم استمپ یونیکس ذخیره می کنم و باید آرشیو رو به شمسی هم تبدیل کنم.
Unique
دوشنبه 09 مرداد 1391, 02:29 صبح
کافیه زمان فعلی را بگیری به صورت timestamp بعدش مقدار 60*60*24*7 را ازش کسر کنی ! و بریزی توی latestweek$ حالا یه query بدی :
select * from posts where date >= $latestweek
pejman_view
دوشنبه 09 مرداد 1391, 12: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 ' -'.$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, 05:06 صبح
قائدتا شما باید paging بگذاری یا کاربر بگه ماله چند هفته گذشته را میخواد ! شما کافیه اول روز پایان هفته را تعین کنی ! که یا 7 روز از هر روی که فعلا در اون هستیم هست یا روز آخر هفته جاری ! مثلا اگه 4 شنبه هست و جمعه روز آخره ! باید3 روز بعد را به عنوان آخرین بگیریم ! حالا صفحه اول میشه تاریخ های بزرگتر یا مساوی با (روز آخر مورد نظر - (60*60*24*7)) روز آخر را برای صفحه های دوم و سوم نیز میتونی براحتی محاسبه کنی !
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.