PDA

View Full Version : سوال: نحویه ذخیره و بازیابی کردن تاریخ و ساعت هر رکورد در دیتابیس



as13851365
دوشنبه 29 مهر 1387, 16:30 عصر
من می خوام تاریخ و ساعت رو برای هر رکورد ذخیره کنم

یعنی وقتی که کاربر رکوردی رو تغییر می ده تاریخ و ساعت تغییر ذخیره بشه و اگر زمانی خواستم رکوردهایی که در تاریخ x مابین ساعت a1 تا a2 دستکاری شدن رو حذف کنم به راحتی این کار صورت بگیره

من یک فایل از این انجمن دریافت کردم که تاریخ رو به صورت *چهارشنبه 01 آبان 1387 * بر می گردونه حالا اگر من تاریخ رو به این صورت در رکورد ذخیره کنم هنگام جستجوی تاریخ مورد نظر با مشکل مواجه می شم

حالا راه حل چیه ؟

cybercoder
دوشنبه 29 مهر 1387, 17:11 عصر
تاریخ رو با فرمت unix ذخیره کنید

as13851365
دوشنبه 29 مهر 1387, 18:32 عصر
تاریخ رو با فرمت unix ذخیره کنید

از این که جواب دادید ممنون !

ولی من وقتی که می خوام این کلمه رو جستجو کنم به بیراه می رم

اگر می شه کمی واضحتر بگید ممنون می شم

cybercoder
دوشنبه 29 مهر 1387, 19:05 عصر
http://ir.php.net/manual/en/function.time.php

maysamscript
دوشنبه 29 مهر 1387, 22:06 عصر
timestamp را در همین سایت جستجو کنید

yaqubian
سه شنبه 30 مهر 1387, 07:55 صبح
دوست عزیز
شما از تابع now خود sql واسه ذخیره تاریخ استفاده کنین. بعد زمانی که تاریخ رو از جدولتون بر می گردونین اونوقت شمسیش کنین.
فکر کنم اینجوری بهتر باشه.
موفق باشید

as13851365
سه شنبه 30 مهر 1387, 08:54 صبح
شما از تابع now خود sql واسه ذخیره تاریخ استفاده کنین. بعد زمانی که تاریخ رو از جدولتون بر می گردونین اونوقت شمسیش کنین.

این همون چیز است که من می خوام !

نوع فیلد برای تاریخ و ساعت رو چی در نظر بگیرم بهتر است !

اگر کمی درباره بابع now توضیح بدید ممنون می شم

برای شمسی کردن من یک فایل دارم( از همین انجمن گرفتم ) که به این صورت تاریخ رو برام شمسی می کنه و برای استفاده ازش به صورت زیر کد نویسی می کنم :


include('datep.php');
$datep=jdate("l d F Y");

بعد مقدار dadep رو در رکورد ثبت می کنم !
حالا وقتی که می خوام جستجو کنم با مشکل مواجه هستم چون تاریخ رو به صورت رشته ذخیره می کنم و نمی تونم ما بین دو تا تاریخ رو جستجو کنم !

1 ) حالا تاریخ رو به چه صورتی ذخیره کنم که این مشکل رو نداشته باشه !

2 ) برای این که تاریخ رو به شمسی تبدیل کنم و در سایت کنار هر پست نشان بدم تابع jdate("l d F Y"); رو چطوری فراخوانی کنم ! یعنی تاریخ رکورد مورد نظر رو به این تابع ارسال کنم و این تابع مقدار شمسی رو برام بده !

3 ) من برای ثبت ساعت از تابع زیر استفاده کردم :


function jtime()
{
return date("H:i:s",time()-8.5*3600);
}

برای این تابع هم همان مشکل رو دارم یعنی من می خوام ساعت رو هم به صورت یک ** ذخیره کنم بعد هنگام بازیابی رکورد ، ساعت رو به ساعت محلی تبدیل کنم و نمایش بدم !

کلا با اصول این کارها مشکل دارم اگر کمک کنید ممنون می شم !

yaqubian
سه شنبه 30 مهر 1387, 13:43 عصر
دوست عزیز
اینجوری:

mysql_query("insert into table (regdate,...) values (now(),...)")
موفق باشید

yaqubian
سه شنبه 30 مهر 1387, 13:48 عصر
راستی دوست عزیز
این فایل ضمیمه تقویم شمسیه! کافیه اونا رو به محل مورد نظر خودت انتقال بدی و بعد فایل fdate.php رو در محل مورد نظر include کنی.
فقط نکته ای که باید رعایت کنید اینه که باید بجای date('Ymd') تو این فایل که به متغیر $date_now انتساب داده شده فیلد تاریخ خودتون از DB رو قرار بدین.
در ضمن فیلد تاریخ رو تو DB از نوع varchar با طول 10 انتخاب کنید. 21-09-2008
موفق باشید