PDA

View Full Version : سوال: یه سوال کوچولو برای آرشیو



mamali-mohammad
پنج شنبه 28 مهر 1390, 12:42 عصر
سلام
تاریخ مطالب در سایت به صورت میلادی ثبت میشه و زمان نمایش با jdate تبدیل به شمسی می کنم
تا اینجا مشکلی نیست

حالا میام آرشیو رو لیست می کنیم :
آرشیو ماه 10 سال 1389
آرشیو ماه 09 سال 1389
آرشیو ماه 08 سال 1389

و لینک هر آرشیو این میشه : archive.php?list=1390-10

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

میخوام لینک شمسی باشه ، اطلاعات مورد نظر هم از دیتابیس بکشه بیرون
چه کنم ؟
ممنون

Reza1607
پنج شنبه 28 مهر 1390, 13:01 عصر
شما تاريخ رو به صورت

1390-07-15
ذخيره كنيد و بعد اين هم كوئريتون


$query="SELECT id,subject,`date` FROM tbl_news WHERE `date` like '".$_GET['list']."-__'";

mamali-mohammad
پنج شنبه 28 مهر 1390, 13:07 عصر
مشکل اینه که اینطوری در دیتابیس ذخیره نمیشه
مشکل اصلی همینه !
مجبورم میلادی ذخیره کنم

Reza1607
پنج شنبه 28 مهر 1390, 13:25 عصر
خوب دو راه داريد
راه اول فيلد تاريخ رو به صورت CHAR بگيريد و تاريخ رو به صورت شمسي ذخيره كنيد
راه دوم فيلد تاريخ رو از نوع Date بگيريد و قبل از ذخيره كردن تاريخ تاريختون رو از شمسي به ميلادي ( با كمك jdate) تبديل كنيد و بعد ذخيره كنيد و زماني هم كه خواستيد كوئري بگيريد اول تاريخ رو به ميلادي تبديل كنيد بعد كوئري رو اجرا كنيد

mamali-mohammad
پنج شنبه 28 مهر 1390, 13:40 عصر
یعنی char در نظر بگیرم و زمان ذخیره اینطوری ذخیره بشه : 1390-05-01
؟

Reza1607
پنج شنبه 28 مهر 1390, 13:44 عصر
بله اين يك راهش هست

mamali-mohammad
پنج شنبه 28 مهر 1390, 13:51 عصر
خب من این کارو کردم
اما زمانی که باز میخوام بکشم بیرون اطلاعات رو ، زیر 1970 رو باز نشون نمیده :(

Reza1607
پنج شنبه 28 مهر 1390, 13:57 عصر
اصلا دليلي وجود نداره كه نتونه برنگردونه چون شما داريد تاريخ رو به صورت رشته ذخيره مي كنيد

mamali-mohammad
پنج شنبه 28 مهر 1390, 14:14 عصر
خب زمانی که به صورت رشته ذخیره میکنم ، چطوری خروجی رو 28 ابان 1388 بکنم ؟

Reza1607
پنج شنبه 28 مهر 1390, 15:07 عصر
//به ميلادي
date('Y M d',strtotime($row['date']));
//به شمسي با استفاده از كتابخانه jdate
jdate('Y M d',strtotime($row['date']));

mamali-mohammad
پنج شنبه 28 مهر 1390, 15:35 عصر
داداش منم از این استفاده می کنم
اما اگه date بزارم سال رو به 1970 بر میگردونه و اگه jdate کنم به 1348 بر میرگدونه

mamali-mohammad
پنج شنبه 28 مهر 1390, 19:08 عصر
دوستان چه کنم ؟