PDA

View Full Version : به دست آوردن زمان و تاریخ از فیلد date در دیتابیس



abbas3zaar
شنبه 08 اسفند 1394, 14:54 عصر
سلام. من در phpmyadmin در داخل یک جدول یک column به نام post_date دارم و نوعش datetime هست. وقتی echo میکنم تاریخ و زمان رو کنار هم میاره. میخواستم بدونم چجوری میشه زمان رو در یک جای جدا و تاریخ رو در یک جای جدا در قالب نشون بدم. آیا باید برای زمان یک column و برای تاریخ یک column جدا بسازم؟ و در کوئری جدا جدا بیارم یا اینکه با همین نوع date میشه جدا کرد؟

الان در قالب من به این صورت نمایش داده میشه:

ارسال شده در تاریخ: 2016-02-26 06:37:22

میخوام اینجوری بشه:

ارسال شده در تاریخ: 2016-02-26 ساعت 06:37:22

imohammad
شنبه 08 اسفند 1394, 17:35 عصر
با تابع strtotime تبدیلش کن به timestamp بعد با تابع date با فرمت دلخواهت نشونش بده

abbas3zaar
یک شنبه 09 اسفند 1394, 08:51 صبح
با تابع strtotime تبدیلش کن به timestamp بعد با تابع date با فرمت دلخواهت نشونش بده

ممنون، کلا در سایت ها از چه روشی برای تاریخ استفاده میشه؟ برای تاریخ و زمان جدا در دیتابیس column تعریف میشه یا فقط یک datetime میزارن؟

abbas3zaar
دوشنبه 10 اسفند 1394, 14:29 عصر
من با این کد به نتیجه رسیدم آیا از لحاظ دستوری صحیح است؟


<?php echo " " . jdate("Y/m/d", strtotime($post_date)) . " ساعت " . jdate($post_time); ?>

در دیتابیس جدا جدا ذخیره کردم:
یک post_date از نوع date دارم
یک post_time از نوع time دارم

139337

139338

مقادیر تاریخ و زمان رو با تابع های CURDATE و CURTIME در کوئری نوشتم و insert کردم آیا درسته؟
با این حال تاریخ و زمان به صورت میلادی ذخیره میشن و با jdate و با دستور بالا نشونش دادم. فقط میخوام بدونم کارایی که کردم صحیح است یا نه؟


$query = "INSERT INTO posts(post_title,post_content,post_tag,post_image,
post_status,post_author,post_category_id,post_date ,post_time)";

$query .= "VALUES('{$post_title}','{$post_content}','{$post_t ag}','{$post_image}',
'{$post_status}','{$post_author}',{$post_category_ id},CURDATE(),CURTIME())";


یه سوال دیگه دارم:



<?php echo " " . jdate("Y/m/d", strtotime($post_date)) . " ساعت " . jdate($post_time); ?>

خروجی این دستور اینه:

۱۳۹۴/۱۲/۱۰ ساعت ۱۶:۳۹:۰۹

من اگه بخوام ثانیه نمایش داده نشه چیکار کنم؟؟؟؟؟





.

imohammad
دوشنبه 10 اسفند 1394, 19:30 عصر
نه دیگه فقط یه فیلد timestamp بزارید بعد با تابع date یا jdate هم تاریخ و هم ساعت رو جداگانه ازش استخراج کنید
برای تاریخ

jDate("Y/m/d", $timestamp)
و برای زمان

jDate("H:m", $timestamp)
بزارید

abbas3zaar
سه شنبه 11 اسفند 1394, 07:09 صبح
نه دیگه فقط یه فیلد timestamp بزارید بعد با تابع date یا jdate هم تاریخ و هم ساعت رو جداگانه ازش استخراج کنید
برای تاریخ

jDate("Y/m/d", $timestamp)
و برای زمان

jDate("H:m", $timestamp)
بزارید


من یه فیلد از نوع timestamp در انتهای جدول اضافه کردم (نام فیلد رو گذاشتم date_time و نوعش رو timestamp و جاهای دیگه رو دست نزدم و خالی گذاشتم) و در کوئری insert با تابع now() به میلادی ذخیره کردم ولی وقتی با کدهای زیر کوئری میگیرم خروجیش میشه این: ۱۳۴۸/۱۰/۱۱ ساعت ۰۴:۰۳:۳۶

سال 1348 ؟؟؟؟؟؟؟؟؟؟؟ ساعت 4 ؟؟؟؟؟
کجای کار میلنگه؟؟

این فیلد ها:

http://8pic.ir/images/kek1ezdgcfxh4z3sxxea.jpg

http://8pic.ir/images/5bx5nyulbhaphfrkrvea.jpg

اینم کوئریم:


$query = "SELECT * FROM posts ORDER BY post_id DESC";
$select_all_post_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_all_post_query)) {

$date_time = $row['date_time'];

echo jDate("Y/m/d", $date_time) . " ساعت " . jDate("H:i:s", $date_time);

}

abbas3zaar
چهارشنبه 12 اسفند 1394, 01:14 صبح
با این کد به نتیجه رسیدم:


$post_date = jdate("Y/m/d", strtotime($row['post_datetime']));
$post_time = jdate("H:i", strtotime($row['post_datetime']));