PDA

View Full Version : مشکل در جستجوی در تاریخ خاص شمسی و میلادی



omid_student
جمعه 13 دی 1392, 16:21 عصر
سلام دوستان
من امودم یه سری موقعیت های جی پی اس رو ثبت کردم توی بانک با تاریخ میلادی
حالا اومدم جستجو کنم از کاربر تاریخ شمسی رو میگیرم و به میلادی تبدیل و جستجو میکنم
ولی متاسفانه یه سری اطلاعات نادرست میده
مثلا روز 8 اذر 1391 هیچ اطلاعاتی نبوده ولی چون توی میلادی بوده رکورد برام میاره
به نظر چطور میشه حل کرد
من خودم میگم موقع ذخیره همون شمسی ذخیره کنم شما چی میگین؟

کامبیز اسدزاده
جمعه 13 دی 1392, 17:00 عصر
سلام دوستان
من امودم یه سری موقعیت های جی پی اس رو ثبت کردم توی بانک با تاریخ میلادی
حالا اومدم جستجو کنم از کاربر تاریخ شمسی رو میگیرم و به میلادی تبدیل و جستجو میکنم
ولی متاسفانه یه سری اطلاعات نادرست میده
مثلا روز 8 اذر 1391 هیچ اطلاعاتی نبوده ولی چون توی میلادی بوده رکورد برام میاره
به نظر چطور میشه حل کرد
من خودم میگم موقع ذخیره همون شمسی ذخیره کنم شما چی میگین؟

شما باید در دیتابیس به صورت استاندارد میلادی ذخیره کنید و فقط در نمایش تاریخ رو توسط توابع تبدیل کننده به شمسی Convert کنید.
فقط نمایش و همون خروجی رو به شمسی تبدیل کنید به هیچ عنوان در دیتابیس شمسی ذخیره نکنید که در میلادی به مشکل برخواهید خورد.

id1385
جمعه 13 دی 1392, 17:29 عصر
با سلام
یک فایل برای شما ارسال کردم که خودم در یک برنامه استفاده می کنم امیدوارم که بدردتون بخوره

1. تبدیل میلادی به شمسی در دو صورت


<?php
include_once("farsi.php");
$sample_date = "2014-01-03 12:10:15";

// sample date 1
echo farsi::convert_to_jalali_date($sample_date);
echo "</br>";

//sample date 2
echo farsi::convert_to_jalali_date($sample_date,'JD');




2. برگردوندن تاریخ شمسی به میلادی جهت سرچ کردن در دیتابیس


list($jy, $jm, $jd)= explode('/', $from);
$from= jalali_to_gregorian(intval($jy),intval($jm),intval ($jd));
$from[1] < 10 ? $from[1] = '0'.$from[1] : $from[1] = $from[1];
$from = $from[0].'-'.$from[1].'-'.$from[2];


در مثال بالا اول فایل jdf.php رو فراخونی کنید و تاریخ ورودی نیز شبیه به این مورد است


//input date
$_POST['1392/10/13']



موفق باشید

omid_student
جمعه 13 دی 1392, 17:35 عصر
با سلام
یک فایل برای شما ارسال کردم که خودم در یک برنامه استفاده می کنم امیدوارم که بدردتون بخوره

1. تبدیل میلادی به شمسی در دو صورت


<?php
include_once("farsi.php");
$sample_date = "2014-01-03 12:10:15";

// sample date 1
echo farsi::convert_to_jalali_date($sample_date);
echo "</br>";

//sample date 2
echo farsi::convert_to_jalali_date($sample_date,'JD');




2. برگردوندن تاریخ شمسی به میلادی جهت سرچ کردن در دیتابیس


list($jy, $jm, $jd)= explode('/', $from);
$from= jalali_to_gregorian(intval($jy),intval($jm),intval ($jd));
$from[1] < 10 ? $from[1] = '0'.$from[1] : $from[1] = $from[1];
$from = $from[0].'-'.$from[1].'-'.$from[2];


در مثال بالا اول فایل jdf.php رو فراخونی کنید و تاریخ ورودی نیز شبیه به این مورد است


//input date
$_POST['1392/10/13']



موفق باشید
ممنون دوست عزیز