PDA

View Full Version : سوال: ایجاد آرشیو مطالب (اگر بخوام مطالب مهرماه 2 سال قبل رو نمایش بدم، چطور باید این کار رو انجام بدم؟)



idocsidocs
چهارشنبه 05 بهمن 1390, 00:13 صبح
توی سیستم مدیریت محتوا زمان ارسال مطلب رو بر حسب تایم استمپ ذخیره می کنم.

مثلا اگر بخوام مطالب مهرماه 2 سال قبل رو نمایش بدم، چطور باید این کار رو انجام بدم؟

MMSHFE
چهارشنبه 05 بهمن 1390, 08:49 صبح
فایل ضمیمه رو که براتون درست کردم دریافت کنید.
حالا اون رو به این صورت فراخوانی کنید:
localhost/jdate/?date=1388-07-01
و
loaclhost/jdate/?date=1388-08-01
و با همین ساختاری که گفتم، هر تاریخی رو که میخواین براش مشخص کنید تا timestamp اون تاریخ رو بهتون اعلام کنه.
حالا با در اختیار داشتن timestamp شروع هر ماه، کافیه دستوری شبیه این رو اجرا کنید:


$result = mysql_query("SELECT * FROM `articles` WHERE (`timestamp` >= '{$start_timestamp}' AND `timestamp` < '{$end_timestamp}') ORDER BY `id`");

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

idocsidocs
چهارشنبه 05 بهمن 1390, 12:37 عصر
و با همین ساختاری که گفتم، هر تاریخی رو که میخواین براش مشخص کنید تا timestamp اون تاریخ رو بهتون اعلام کنه.با توجه به توضیحاتی که دادید بنظرم تنها کار لازمم تبدیل تاریخ شمسی به تایم استمپ هست و این کار هم توسط توابع jdate انجام می شه. این مطلب درسته؟

MMSHFE
چهارشنبه 05 بهمن 1390, 12:43 عصر
تقریباً. البته تابع jalali_to_gregorian برای تبدیل تاریخ شمسی به میلادی استفاده شده و تابع strtotime برای تبدیل تاریخ میلادی به timestamp
بد نیست تشکری هم از سازندگان JDF (http://jdf.scr.ir) بکنیم.

tux-world
چهارشنبه 05 بهمن 1390, 13:34 عصر
منظور از timestamp چيه ؟ تبديل به تاريخ يونيكسيه؟

MMSHFE
چهارشنبه 05 بهمن 1390, 15:01 عصر
timestamp همون خروجی تابع time هست که یک عدد صحیح هست و تعداد ثانیه های گذشته شده از اول ژانویه 1970 که مبدأ محاسبه تاریخ درنظر گرفته شده رو محاسبه میکنه. با استفاده از این عدد و با کمک تابع date خود PHP یا معادل فارسی اون jdate که توسط اسکریپت JDF در اختیار داریم، میتونیم هر زمانی رو که بخوایم، با قالب دلخواه به نمایش در بیاریم و توی دیتابیس، فقط همین یک عدد رو ذخیره کنیم. موفق باشید.

ravand
چهارشنبه 05 بهمن 1390, 18:38 عصر
ببخشيد من شنيدم كه بايد تاريخ رو به ميلادي حتما وارد ديتابيس بكنم تا بتونم مطالب رو آرشيو كنم وگرنه مشكل پيش مياد آيا اين مورد صحت داره؟

idocsidocs
چهارشنبه 05 بهمن 1390, 22:36 عصر
ببخشيد من شنيدم كه بايد تاريخ رو به ميلادي حتما وارد ديتابيس بكنم تا بتونم مطالب رو آرشيو كنم وگرنه مشكل پيش مياد آيا اين مورد صحت داره؟

توابع پی اچ پی و مای اسکیو ال فقط تاریخ میلادی رو می شناسه و برای کار با این توابع باید تاریخ رو بصورت میلادی توی دیتابیس ذخیره کنید.