تالار گفتمان nCIS.ir

نسخه‌ی کامل: مشکل با فیلد تاریخ در زمان استفاده از PDO
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام

1 مشکل در زمان ذخیره تاریخ شمسی در دیتابیس دارم .

این مورد فقط در زمان استفاده از PDO هست .

اگر فیلد DATE رو به صورت زیر ایجاد کنم :

[عکس: attachment.php?attachmentid=139190&d=1455942501]
و PDO را به صورت زیر تعریف کنم :

$pdo -> exec("SET NAMES utf8");


تاریخ به صورت صحیح در بانک ذخیره میشه .
1 مشکلی که اینجا دارم این هست که در کوئری ها ، وقتی که میخوام فیلدها را بر اساس تاریخ واکشی کنم شرط برقرار نمیشه .


$date=jdate('Y-m-d');

$sql="select * from `` where `date`='$date'";


چون تاریخ در دیتابیس با کاراکترهای فارسی ذخیره شده است ( در تصویر بالا مشخص هست ) و اگر به صورت دستی در دیتابیس ، تاریخ رو به کاراکترهای انگلیسی تبدیل کنم ، کوئری درست میشه .

اگر هم فیلد را به صورت زیر ایجاد کنم :

[عکس: attachment.php?attachmentid=139191&d=1455942738]
دیگه تاریخ فارسی توی فیلد ذخیره نمیشه


لطفا برای حل مشکل راهنمایی کنید .
عکسها رو به شکل صحیح ضمیمه کنید.
(01-12-1394، 04:37 ب.ظ)ADMIN نوشته: [ -> ]عکسها رو به شکل صحیح ضمیمه کنید.
$date = tr_num(jdate('Y-m-d'), 'en');

ولی توصیه میکنم حتماً برای ذخیره تاریخ از فرمت INT در MySQL استفاده کنید و Timestamp تحویل گرفته شده از تابع time رو ذخیره کنید. اینطوری هروقت خواستین نمایش بدین میتونید با jdate تبدیل کنید. دقت کنید که MySQL تقویم شمسی رو نمیشناسه و درنتیجه تعداد روزهای ماه رو مطابق تقویم میلادی درنظر میگیره. برای مثال ماه دوم در این تقویم، 28 روز و در سالهای کبیسه 29 روز داره.