رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با فیلد تاریخ در زمان استفاده از PDO
#1
سلام

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]
دیگه تاریخ فارسی توی فیلد ذخیره نمیشه


لطفا برای حل مشکل راهنمایی کنید .
پاسخ
تشکر شده توسط:
#2
عکسها رو به شکل صحیح ضمیمه کنید.
پاسخ
تشکر شده توسط:
#3
(01-12-1394، 04:37 ب.ظ)ADMIN نوشته: عکسها رو به شکل صحیح ضمیمه کنید.


فایل‌های پیوست تصاویر بندانگشتی
       
پاسخ
تشکر شده توسط:
#4
$date = tr_num(jdate('Y-m-d'), 'en');

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




کاربران در حال بازدید این موضوع: 2 مهمان