PDA

View Full Version : کار با توابع تاریخ شمسی



sahar_ah
دوشنبه 09 بهمن 1385, 20:46 عصر
سلام
خسته نباشید
من تازه Php رو شروع کردم . از توی سایت برنامه نویس با جستجو فایل تاریخ شمسی Jdf رو دانلود کردم و ازش استفاده میکنم.
امام مشکل من در وارد کردن مقادیر در دیتابیس و خوندن اونهاست.
من چند تا سوال دارم :

1- چطور مقادیر رو برحسب تاریخ توی دیتابیس ذخیره کنم .منظورم اینه که فیلد تاریخ رو Date انتخاب کنم یا اینکه از نوع متنی باشه

2-برای جستجو در دیتابیس آیا با این فرمت یعنی فرمت تاریخ شمسی چطور میتونم در دیتابیس جستجو کنم ؟
آیا باید موقع جستجو مجددا تاریخ رو به Gregorean برگردونم ؟

3-برای پیدلکردن فاصله بین دو تاریخ با دستورات Php روی این تاریخ شمسی جواب میده؟

4-من وقتی به فرمت میلادی میخوام اریخ رو وارد کنم بصورت 11/05/1385 مینویسم اما در دیتابیس صفر مینویسه اینطور 0000-00-00 حالا چکارباید بکنم ؟

5-کلا برای کار با تاریخ شمسی و ذخیره و جستجو با این فرمت چه راه استانداردی هست

از دوستان خوبم بسیار سپاسگزارم . امیدوارم بتونید منو راهنمایی کنید

خیلی ممنون

oxygenws
سه شنبه 10 بهمن 1385, 02:03 صبح
۱- از نوع date
۲- تاریخ رو در پایگاه داده حتما gregorian ذخیره کن.
۳- نه... میلادی کن و بعد حساب کن.
۴-۵- gregorian بریز تو پایگاه داده.

sahar_ah
سه شنبه 10 بهمن 1385, 23:19 عصر
سلام
از جوابتون ممنونم ولی متاسفانه چند تا مشکل کوچولوی دیگه دارم

1-من از کد برای فیلتر کردن تاریخ در دو بازه زمانی از این دستور که در سایت جستجو کردم استفاده میکنم اما جواب نمیده :



$search1 = '05-05-2006';
$search2 = date('d-m-Y');
$first = strtotime( $search1 );
$second = strtotime( $search2 );
$diff = (($second - $first) / 3600 / 24);
print $diff;


اما متاسفانه این کد زمانی جواب میده که تاریخ رو به فرمتd,m,y) 05-11-2007 ) نوشته شده باشه در صورتی که وقتی ما تاریخ رو چه با برنامه PhpMyAdmin و چه بصورت دستی وارد میکنیم به فرمت Y,m,d) 2007-05-11) نوشته میشه . چطور میشه این مشکل رو رفع کرد ؟
آیا کد جستجو بین دو بازه زمانی که نوشتم درسته یا اشکال از این کد هستش؟

2- اگه بخواهیم تمامی رکوردهایی که مقدار فیلد تاریخ اونا بزرگتر یا کوچکتر از مقدار امروز باشه از چه کدی استفاده میکنیم؟ (باور کنید من سرپ کردم اما پیدا نکردم)
بازم از راهنماییتون ممنونم

oxygenws
چهارشنبه 11 بهمن 1385, 08:11 صبح
1- خوب اینو به اون فرمت در بیار... بهتره توابع MySQL رو برای کار با تاریخ ها نگاه کنی.
2- مثلا:

select * from table where date < NOW()

sahar_ah
چهارشنبه 11 بهمن 1385, 13:11 عصر
از جوابتون بسیار سپاسگزارم. ممنونم . فقط توابع MySQL رو برای کار با تاریخ ها رو از کجا میتونم پیدا کنم و مطالعه کنم
مرسی

reza_rad
چهارشنبه 11 بهمن 1385, 13:15 عصر
فقط توابع MySQL رو برای کار با تاریخ ها رو از کجا میتونم پیدا کنم و مطالعه کنم



http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html