تشکرها : 136
( 90 تشکر در 47 ارسال )
۱۳۸۸ اردیبهشت ۰۱, ۱۱:۰۷ ب.ظ
سلام.
من یک اسکریپت برای مناسبت روز نوشته بودم که جدولش در ادامه اومده. اما کمی اشکال داره.
جدول :
id : index,primary,autoincrement
text : varchar(250)
pdate : varchar 4
edate : varchar 4
فیلدها مشخصند فقط درباره pdate,edate بگم که تاریخ ابتدا و انتها رو مشخص میکنه البته عدد است.
مثلا اینطوری که از 1201 تا 1205 به معنی 1 اسفند تا 5 اسفند.
این درست کار میکرد تا اینکه شد 1230 تا 0105 و فرض اینکه امروز 0103 باشه.
کدی که برای select گذاشتم این بود.
کد پیاچپی: $sql="select * from tbl_date where pdate>=$curdate and edate<=$curdate";
خب اگه جایگذاری کنید میبینید برای این مقدار خطا میده( یعنی select) نمیکنه.
تاریخ عضویت: ۱۳۸۷ بهمن ۲۵
تشکرها : 66
( 136 تشکر در 74 ارسال )
۱۳۸۸ اردیبهشت ۰۲, ۱۲:۰۸ ب.ظ
خوب شما چرا تاریخ را به صورت تاریخ ذخیره نمیکنید؟
در ضمن به جای pdate>=$curdate and edate<=$curdate میتونید بنویسید:
کد پیاچپی: ... $curdate BETWEEN pdate AND edate ...
Two hands working can do more than a thousand clasped in prayer
تشکرها : 1363
( 6215 تشکر در 3451 ارسال )
۱۳۸۸ اردیبهشت ۰۲, ۰۴:۲۱ ب.ظ
به صورت timestamp ذخیره کنید خیلی بهتر هست اینجوری اخطاری هم نمیده
در ضمن اشکال کار شما این هست که به فیلدهای عددی شما به صورت varchar هست که باید به صورت int باشه
تشکرها : 136
( 90 تشکر در 47 ارسال )
۱۳۸۸ اردیبهشت ۰۲, ۰۴:۳۶ ب.ظ
(۱۳۸۸ اردیبهشت ۰۲, ۱۲:۰۸ ب.ظ)میلاد نوشته: خوب شما چرا تاریخ را به صورت تاریخ ذخیره نمیکنید؟
در ضمن به جای pdate>=$curdate and edate<=$curdate میتونید بنویسید:
کد پیاچپی: ... $curdate BETWEEN pdate AND edate ...
سلام.
این کد برای زمانی که pdate > edate باشد جواب میده اما زمانی که قراره از 30 اسفند تا 5 فروردین سال بعد مطلبی نمایش داده بشه pdate<edate میشه. راه دیگه ای به ذهنتون نمیرسه؟
تشکرها : 1363
( 6215 تشکر در 3451 ارسال )
۱۳۸۸ اردیبهشت ۰۲, ۰۵:۰۱ ب.ظ
چرا به صورت timestamp ذخیره نمی کنی؟ اینجوری به مشکلی بر نمی خوری
تشکرها : 136
( 90 تشکر در 47 ارسال )
۱۳۸۸ اردیبهشت ۰۴, ۰۲:۳۰ ب.ظ
(۱۳۸۸ اردیبهشت ۰۲, ۰۵:۰۱ ب.ظ)admin نوشته: چرا به صورت timestamp ذخیره نمی کنی؟ اینجوری به مشکلی بر نمی خوری
اونوقت مجبورم که سال رو هم ذخیره کنم. من میخواهم فقط ماه و روز رو ذخیره کنم بعدش هرسال توی همون روز مناسبت اون روز بیاید
تاریخ عضویت: ۱۳۸۷ بهمن ۲۵
تشکرها : 66
( 136 تشکر در 74 ارسال )
۱۳۸۸ اردیبهشت ۰۴, ۰۳:۰۱ ب.ظ
(آخرین تغییر در ارسال: ۱۳۸۸ اردیبهشت ۰۴, ۰۳:۰۵ ب.ظ توسط میلاد.)
یک راه دیگه هم هست که میتونید تاریخ ها را بر اساس روز شمار سال ذخیره کنید، مثلا روز ۱ تا ۵ عید نوروز.
برای بدست آوردن تاریخ شمسی به روز شمار سال هم میتونید از تاپبع pdate به صورت زیر استفاده کنید.
کد پیاچپی: <?
require 'pdate.php'; echo pdate('z',pmktime(0,0,0,pdate('m'),pdate('d'),pdate('Y')));
?>
کد بالا نشون میده امروز روز چندم سال هست.
برای نمایش روز خاص هم میتونید اینجوری بنویسید مثلا:
کد پیاچپی: <?
require 'pdate.php'; echo pdate('z',pmktime(0,0,0,1,1,1388)); // 1 echo pdate('z',pmktime(0,0,0,2,1,1360)); // 32
?>
Two hands working can do more than a thousand clasped in prayer
تشکرها : 136
( 90 تشکر در 47 ارسال )
۱۳۸۸ اردیبهشت ۰۴, ۰۳:۱۷ ب.ظ
(۱۳۸۸ اردیبهشت ۰۴, ۰۳:۰۱ ب.ظ)میلاد نوشته: یک راه دیگه هم هست که میتونید تاریخ ها را بر اساس روز شمار سال ذخیره کنید، مثلا روز ۱ تا ۵ عید نوروز.
برای بدست آوردن تاریخ شمسی به روز شمار سال هم میتونید از تاپبع pdate به صورت زیر استفاده کنید.
کد پیاچپی: <?
require 'pdate.php'; echo pdate('z',pmktime(0,0,0,pdate('m'),pdate('d'),pdate('Y')));
?>
کد بالا نشون میده امروز روز چندم سال هست.
برای نمایش روز خاص هم میتونید اینجوری بنویسید مثلا:
کد پیاچپی: <?
require 'pdate.php'; echo pdate('z',pmktime(0,0,0,1,1,1388)); // 1 echo pdate('z',pmktime(0,0,0,2,1,1360)); // 32
?>
این عالیه
ولی pdate.php چیه؟ از قبل توی php که تعریف شده نیست!
تاریخ عضویت: ۱۳۸۷ بهمن ۲۵
تشکرها : 66
( 136 تشکر در 74 ارسال )
۱۳۸۸ اردیبهشت ۰۵, ۰۱:۳۱ ق.ظ
همون تابع تاریخ جلالای هست که تپسعه داده شده و اسمشو کردن پرشن دیت یا pdate.
کد: http://rapidshare.de/files/46886216/pdate.php.html
Two hands working can do more than a thousand clasped in prayer
|