PDA

View Full Version : کار با زمان در PHP



saeed2922
دوشنبه 23 مرداد 1396, 08:52 صبح
سلام خدمت همه عزیزان
من میخوام زمان رو از دیتا بیسی که یه فیلد datetime داره بگیرم و با زمان جاری مقایسه کنم کسی می تونه کمک کنه؟

مهرداد سیف زاده
دوشنبه 23 مرداد 1396, 21:24 عصر
بهترین روش که هم دقت مناسب رو داشته باشه و هم سرعت، استفاده از unix_time هست. بر حسب ثانیه ذخیره میشه و در php براحتی قابل تبدیل به هر زمان دیگری هست. برای مقایسه در سطح دیتابیس هم، بدلیل صرفا عددی بودن، سرعت مناسبی داره


tbl_data
--------------
id name saved_at
1 test1 1501741806
2 test2 1501856900
3 test3 1502631051




$t_now = time();
$one_day_ago = $t_now-(24*60*60);


$sql = "SELECT * FROM `tbl_data` WHERE `saved_at` BETWEEN $t_now AND $one_day_ago";



در مثال بالا یه سری دیتا توی دیتابیس ذخیره شده. زمان های ذخیره هم به کمک تابع time() در زمان ثبت درونش ذخیره شده. حالا برای جستجو میخوایم تمام داده های که در ۲۴ ساعت گذشته تا به الان ثبت شده رو جستجو کنیم.

saeed2922
سه شنبه 24 مرداد 1396, 18:45 عصر
من داده ها رو از نوع datetime ذخیره کردم و با این کد زمان رو می فرستم به دیتا بیس
$datetime=date("Y/M/D G:i:s",time());


mysqli_query($link,"INSERT INTO game_table(username, password,datetime)

saeed2922
سه شنبه 24 مرداد 1396, 18:47 عصر
من داده ها رو از نوع datetime ذخیره کردم و با این کد زمان رو می فرستم به دیتا بیس
$datetime=date("Y/M/D G:i:s",time());


mysqli_query($link,"INSERT INTO game_table(username, password,datetime)

پیام حیاتی
چهارشنبه 01 شهریور 1396, 16:12 عصر
من داده ها رو از نوع datetime ذخیره کردم و با این کد زمان رو می فرستم به دیتا بیس
$datetime=date("Y/M/D G:i:s",time());


mysqli_query($link,"INSERT INTO game_table(username, password,datetime)

این روش صحیح نیست ، طبق گفته آقای سیف زاده عمل کنید.