PDA

View Full Version : نمایش تاریخ datetime با تابع jdf



abbas3zaar
چهارشنبه 16 فروردین 1396, 00:39 صبح
در جدولم فیلد تاریخم datetime هست
موقع نمایش در کد ها چجوری با تابع jdf به شمسی نشونش بدم؟

تاریخ رو جدا
و ساعت رو جدا

جدا جدا نشون بدم

abbas3zaar
چهارشنبه 16 فروردین 1396, 01:11 صبح
اینو نوشتم:



<td>'.jdate('Y/m/d', $res[$i]['created']).'</td>




ولی خروجیش اینه:


۱۳۴۸/۱۰/۱۱


توی لوکال هاست کار میکنم

اینم کدم. به چه صورت باید کدم رو تغییر بدم؟


http://uupload.ir/files/jg0f_2222222222222.jpg

plague
چهارشنبه 16 فروردین 1396, 04:14 صبح
فکر میکنم جای آرگومان ها رو اشتباه زدی اولی تاریخ رو باد بزاری بعد فرمت رو
کتابخونه jdate رو باز کن ببین کدوم اول باید بیاد

abbas3zaar
چهارشنبه 16 فروردین 1396, 14:58 عصر
فکر میکنم جای آرگومان ها رو اشتباه زدی اولی تاریخ رو باد بزاری بعد فرمت رو
کتابخونه jdate رو باز کن ببین کدوم اول باید بیاد

اینجوری میزارم


<td>'.jdate($res[$i]['created'],'Y/m/d').'</td>


خروجی اینه:


http://uupload.ir/files/l2g4_345345345.jpg


اینجوری هم:


<td>'.jdate('Y/m/d', $res[$i]['created']).'</td>

خروجی اینه:

http://uupload.ir/files/254k_4535345.jpg


کد اصلی هم اینه:


<td>'.$res[$i]['created'].'</td>

که خروجیش اینه:

http://uupload.ir/files/4p8g_23234234.jpg

thacker
چهارشنبه 16 فروردین 1396, 15:38 عصر
تاریخ رو روی دیتابیس به چه شکلی ثبت کرده اید ؟

thacker
چهارشنبه 16 فروردین 1396, 15:40 عصر
احتمالا مشکلتون به این ترتیب برطرف بشه :


$time = $res[$i]['created'];
$strTime = strtotime($time);

echo jdate('Y/m/d', $strTime).'<br>'.jdate('H:i', $strTime);

plague
چهارشنبه 16 فروردین 1396, 15:45 عصر
به نظر میاد همونجوری که گفتم باید تاریخ رو اول بزاری
اما ظاهرا کلا کلاست کار نمیکنه و تبدیل نمیکنه
حال یا انتظار epoch داره یا کلاسش مشکل داره !
بهتره یه بار دیگه از یه سورس دیگه دانلود کنی

abbas3zaar
چهارشنبه 16 فروردین 1396, 16:03 عصر
تاریخ رو روی دیتابیس به چه شکلی ثبت کرده اید ؟

نوعش datetime است

اینجوری ذخیره شده
2017-04-05 00:01:49




احتمالا مشکلتون به این ترتیب برطرف بشه :


$time = $res[$i]['created'];
$strTime = strtotime($time);

echo jdate('Y/m/d', $strTime).'<br>'.jdate('H:i', $strTime);

اینجوری نوشتم:


<td>'.jdate("Y/m/d",strtotime($res[$i]['created'])).'</td>

خروجیش این شد : !!!!

http://uupload.ir/files/tby9_23423423423434343.jpg


به نظر میاد همونجوری که گفتم باید تاریخ رو اول بزاری
اما ظاهرا کلا کلاست کار نمیکنه و تبدیل نمیکنه
حال یا انتظار epoch داره یا کلاسش مشکل داره !
بهتره یه بار دیگه از یه سورس دیگه دانلود کنی


خودفایلjdf.php یعنی مشکل داره؟ از خود سایتش گرفتم!

thacker
چهارشنبه 16 فروردین 1396, 16:09 عصر
خروجیش این شد : !!!!

http://uupload.ir/files/tby9_23423423423434343.jpg



خب الان خروجی مشکلی داره ؟! به نظر داره تاریخ درست رو نمایش میده. برای نمایش ساعت و تاریخ کنار هم به این شکل عمل کنید :


<td>'.jdate("Y/m/d - H:i",strtotime($res[$i]['created'])).'</td>

abbas3zaar
چهارشنبه 16 فروردین 1396, 16:25 عصر
خب الان خروجی مشکلی داره ؟! به نظر داره تاریخ درست رو نمایش میده. برای نمایش ساعت و تاریخ کنار هم به این شکل عمل کنید :


<td>'.jdate("Y/m/d - H:i",strtotime($res[$i]['created'])).'</td>




خب وقتی مقادیر تاریخ در جدولم اینه:

8 تا رکورد

http://uupload.ir/files/c1er_23424234234234.jpg




چرا باید همه رکوردا رو ۱۳۹۵/۰۵/۲۷ نشون بده؟


8 تا رکورد تاریخ ۱۳۹۵/۰۵/۲۷ !!!!

http://uupload.ir/files/0qeg_22.jpg




این کدهام:


http://uupload.ir/files/7lu_111111111111111.jpg




اینم خروجی:


http://uupload.ir/files/jeqc_3133.jpg



همین الان یه سفارش درج کردم

ساعت سیستمم الان :

http://uupload.ir/files/x0a_333333333.jpg


چرا ساعت ش در دیتابیس چیز دیگه ایه؟

http://uupload.ir/files/gzp_333333222.jpg


اینم کد درجم





$query = "INSERT INTO orders (customer_id,total_price,created,modified,status) VALUES ('".$_SESSION['sessCustomerID']."', '".$cart->total()."', '".date("Y-m-d H:i:s")."', '".date("Y-m-d H:i:s")."'";

abbas3zaar
چهارشنبه 16 فروردین 1396, 19:24 عصر
خارج از حلقه for این کد کار میکنه ولی داخل حلقه کار نمیکنه:



$mydate = "2017-04-05 16:53:28";
$strTime = strtotime($mydate);
echo jdate('Y/m/d', $strTime).''.jdate('H:i', $strTime);

این کدام مشکلی داره؟

http://uupload.ir/files/09wg_322.jpg

abbas3zaar
جمعه 18 فروردین 1396, 16:36 عصر
tفهمیدم مشکل از کجاست ولی راه حل درست کردنش رو نمیدونم!

در کد زیر وقتی INNER JOIN customers ON orders.customer_id = customers.id رو به خط اول اضافه میکنم تاریخ رو در خروجی اشتباه نشون میده ولی وقتی INNER JOIN customers ON orders.customer_id = customers.id رو پاک میکنم و فقط SELECT * FROM orders میمونه همه چی درسته. چرا inner join این کارو میکنه؟ مشکل از چیه؟






$query = "SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.id";$do = mysql_query($query);$i = 0;$res=null;$numrow = 1;while ($row = mysql_fetch_array($do)){$res[$i]["id"] = $row["id"];$res[$i]["customer_id"] = $row["customer_id"];$res[$i]["total_price"] = $row["total_price"];$res[$i]["status"] = $row["status"];$res[$i]["created"] = $row["created"];$res[$i]["name"] = $row["name"];
$mydate = $res[$i]['created'];$strTime = strtotime($mydate);
echo '<tr><td>'.$numrow.'</td><td>'.$res[$i]['name'].'</td><td>'.number_format($res[$i]['total_price']).'</td><td>'.jdate('Y/m/d', $strTime).'</td><td>'.jdate('H:i', $strTime).'</td><td>'.$res[$i]['status'].'</td></tr>';
$numrow++;$i++;}

thacker
جمعه 18 فروردین 1396, 23:28 عصر
$mydate = $res[$i]['created'];

رو به این شکل تغییر بدید ببینید درست میشه یا خیر


$mydate = $res[$i]['orders.created'];