PDA

View Full Version : درج تاریخ در فیلد جدول



fafa_na
شنبه 24 فروردین 1392, 13:38 عصر
باسلام
دوستان من یه فیلد از نوع varchar(20)
ساختم که تاریخی که ایجاد میکنم را در آن ذخیره کنم.ولی با این کد من هیچی ذخیره نمیشه مگراینکه علامتی که برای جداکردن آنها استفاده کردم را بردارم مثلا
$p=$year.$newmonth.$newday;
ذخیره میشه ولی
$p=$year."-".$newmonth."-".$newday;
ذخیره نمیشه.لازم بذکر است مقادیر داخل متغییرهای من درست هستن .من فقط در ذخیره این مقدار در فیلد جدولم مشکل دارم .ممنون میشم راهنمایی بفرمایید

arenaw
شنبه 24 فروردین 1392, 13:59 عصر
اینجوری اشتباهه، شما یا باید فیلد رو از نوع DATE بذارید و با فرمت Year-Month-Day اطلاعاتو توش بریزید، برای تبدیل تایم استمپ پی اچ پی به این فرمت هم ازین کد استفاده کنید:


function phptosqldate($phpdate){
return date('Y-m-d',$phpdate);
}

بر عکسش هم اینطوری:


function sqltophpdate($sqldat){
return strtotime($sqldat);
}


و یا اینکه فیلد رو اینتیجر بذارید و مستقیم تایم استمپ رو توش بریزید.
اگر هم با تایم استمپ سر کار ندارید و تاریختون رو همینجوری دریافت میکنید، همین متغیر $p رو مستقیم داخل فیلد از نوع DATE بریزید.


$p=$year."-".$newmonth."-".$newday;

fafa_na
شنبه 24 فروردین 1392, 14:05 عصر
این چکار میکنه.تاریخ من شمسی می باشد .ایراذی که نداره

arenaw
شنبه 24 فروردین 1392, 14:13 عصر
این چکار میکنه.تاریخ من شمسی می باشد .ایراذی که نداره
راجع به تاریخ شمسی توی بانک، یا باید یه فیلد با نوع مثلا pDATE با کدهای sql خودتون بسازید و تاریخهای شمسی رو توش بریزید، که من از روشش خوشم نیومد و اصلا از کدهای sql سر در نمیارم،
یا اینکه بیاید اول تاریخای شمسیتون رو به میلادی تبدیل کنید بعد بریزید توی بانک، واسه تبدیلش هم میتونید از کتابخونه pdate.php استفاده کنید ( http://iranphp.org/node/6 )

fafa_na
شنبه 24 فروردین 1392, 14:15 عصر
نمیشه.نوع فیلد را هم date کردم ولی هیچی ثبت نمیکنه اینجوری

fafa_na
شنبه 24 فروردین 1392, 14:16 عصر
من میخوام حتما تاریخ شمسی را ذخیره کنم . ولی بدلیلمحاسباتی که لازم روی روز و ماه انجام بدم در آخر کدم باید اینا را بصورت تاریخ بهم بچسبونم و ذخیره کن که متاسفانه نمیشه.

arenaw
شنبه 24 فروردین 1392, 16:51 عصر
شما اون کتابخونه ای که گفتم رو به صفحت اینکلود کن،
حالا مثلا با محاسباتی که خودت انجام دادی و من نمیدونم چیه، به یه تاریخه شمسی ای رسیدی، حالا این تاریخ رو اینطوری و توی دیتابیس ذخیره کن:


// $pyear = Sale shamsi;
// $pmonth = Mahe shamsi;
// $pday = Ruze shamsi;
$timestamp = pmktime(0,0,0,$pmonth,$pday,$pyear);
$miladi = date('Y-m-d',$timestamp);

اینجا متغیر miladi رو باید بریزی توی بانک، pday و pmonth و pyear رو هم خودت باید مقدار بدی

وقتی هم بخوای تاریخی که توی بانک ذخیره کردی رو بگیری :


// $miladi = Tarikhi k az sql gerefti
$timestamp = strtotime($miladi);
$pyear = pdate('Y',$timestamp);
$pmonth = pdate('m',$timestamp);
$pday = pdate('d',$timestamp);

که miladi همون تاریخیه که توی فیلد بانکته و تو باید مقدارشو از بانک بریزی توش، pday و pmonth و pyear هم به ترتیب میشه روز و ماه و سال شمسیت.