ذخیره و خواندن تاریخ

amirepsilon

Active Member
سلام
دوستان من تاریخ رو با تابع time میگیرم و به صورت رشته ذخیره میکنم توی دیتابیس
1. آیا این روش خوبی هست ؟
2. یک مشکلی که دارم اینه که وقتی میخوام بزنم order by date برخی مواقع (مثلا برای تاریخ های سالها پیش) جوابم درست در نمیاد، احتمالا چون تاریخ رو به صورت رشته ذخیره کردم، نمیتونه انجام بده.
ممنون میشم راهنمایی کنید.
 

Cyletech

Member
دوستان من تاریخ رو با تابع time میگیرم و به صورت رشته ذخیره میکنم توی دیتابیس
بهش میگن ثبت تاریخ به روش timestamp که بهترین روش هست. فقط حتماً قبلش از date_default_timezone_set() استفاده کن و موقعیت زمانی رو مشخص کن!
مثلاً:
PHP:
date_default_timezone_set('Asia/Tehran');
echo time(); //output: time for now 1316547699:
حواست باشه که بهترین تایپ برای فیلد تاریخ بصورت تایپ استمپ ini 11 هست.

2. یک مشکلی که دارم اینه که وقتی میخوام بزنم order by date برخی مواقع (مثلا برای تاریخ های سالها پیش) جوابم درست در نمیاد، احتمالا چون تاریخ رو به صورت رشته ذخیره کردم، نمیتونه انجام بده.
باید اول بتونی درست با تایپ استمپ کاری کنی. از mktime و time و date استفاده کن تا بتونی تایم روز های آتی و گذشته رو بدست بیاری.
 

amirepsilon

Active Member
یه مشکلی هست !
اگه ما timestamp ر 1 بزنی یا حتی عدد منفی بزنی هم بهت تاریخ میده (که اصولا باید همچین اتفاقی بیوفته)
ولی مساله اینجاست که توی order by مکشلی ایجاد نمیکنه ؟ من تست کردم جواب اینجوری شد:
تا سال 1380 رو مرتب نشون میده، سال 1380 رو بعد از 1390 نشون میده یعنی: 80 - 90 - 89 - 88 - 87 ...
 

Cyletech

Member
کوئریت رو اینجا بذار.
یه چیزی شبیه این باید باشه:
PHP:
//... ORDER BY `timestamp` ASC
که از کوچکترین عدد (تایم/تایم استمپ) به بزرگترین مرتب می کنه. هرچی هم خروجبیش باشه درسته.
 

جدیدترین ارسال ها

بالا