افزونه 1 درج تاريخ شمسي در ديتابيس و نمايش آن در جدول

nafas.php

Well-Known Member
سلام يه سوال دارم چند روزه باهاش درگيرم ولي درست نميشه يه صفحه پي اچ پي نوشتم كه يه فرمه كه اطلاعيه اي رو دريافت مي كنه و در جلوي اين اطلاعيه ميخوام تاريخ به شمسي نمايش داده بشه و اينطور باشه وقتي من از طريق فرم اطلاعيه رو ثبت مي كنم تاريخ در ديتابيس ثبت بشه و در جدول نمايش داده بشه اين كار رو چه طوري انجام بدم؟:rose:
 

mona.joon

Member
براي نمايش تاريخ شمسي ميتونيد از فايل jdf.php استفاده كنيد
عدد timestamp تاريخ جاري رو بدست بياريد بعد با استفاده از اون فايل به هر فرمتي خواستين چاپش كنيد
PHP:
$time = time();
include "jdf.php";
$time = jdate('l d F Y',$time); // يكشنبه 16 مرداد 1390
 

nafas.php

Well-Known Member
براي نمايش تاريخ شمسي ميتونيد از فايل jdf.php استفاده كنيد
عدد timestamp تاريخ جاري رو بدست بياريد بعد با استفاده از اون فايل به هر فرمتي خواستين چاپش كنيد
PHP:
$time = time();
include "jdf.php";
$time = jdate('l d F Y',$time); // يكشنبه 16 مرداد 1390
:rose:درود بر دوست عزيزم اگه من اين متغير time رو براي درج در جدول وقتي در تابع insert مقدار دهي مي كنم بذارم تاريخ در ديتابيس ثبت ميشه؟
 

mona.joon

Member
تاريخ ثبت نميشه يك عدد با فرمت timestamp ذخيره ميشه
هر جا لازم بود تاريخ و نمايش بديد از همين روش بالا استفاده كنيد فقط بجاي متغير time از ديتابيستون مقدار ثبت شده رو بخونيد
 

nafas.php

Well-Known Member
تاريخ ثبت نميشه يك عدد با فرمت timestamp ذخيره ميشه
هر جا لازم بود تاريخ و نمايش بديد از همين روش بالا استفاده كنيد فقط بجاي متغير time از ديتابيستون مقدار ثبت شده رو بخونيد

آخه ثبت نميشه هيچي ثبت نميشه فقط صفر نشون ميده ببينيد اين كد رو نوشتم
PHP:
$sql ="INSERT INTO `group_computer`.`post` (`post_id`, `post_obj`, `post_text`, `post_date`, `post_name`, `post_h`, `post_watch`) VALUES (NULL, '$a', '$c', '؟؟', '$b', '؟؟', '$d');";
حالا به جاي اين علامت سوال ها كه گذاشتم مقدار تاريخ و ساعت هست چي بذارم كه در ديتابيس قرار بگيره كه بعد به صورت تاريخ در صفحه نمايش بدم؟
 

masima

Member
درج تاریخ خورشیدی کار پیچیده ای هست ؛ بهتره تاریخ میلادی ثبت کنید ؛ بعدش موقع خوندن اون رو به خورشیدی تبدیل کنید

اگه تاریخ رو از نوع timestamp تعریف کنید و مقدار attributes اون رو on update CURRENT_TIMESTAMP بدید ؛ دیگه اصلا نیاز نیست موقع insert توی جدولتون بهش مقدار بدید ؛ چون به صورت خودکار داخلش ثبت میشه .
PHP:
 $sql ="INSERT INTO `group_computer`.`post` (`post_id`, `post_obj`, `post_text`, `post_name`, `post_h`, `post_watch`) VALUES ('NULL', '".$a."', '".$c."', '".$b."', '?', '".$d."')";
هنگام خوندن اطلاعات از جدول هم مطابق روش دوستمون رفتار کنید .

یک توضیح کوچیک :
از نامگذاری متغیرهاتون ؛ به نظر میاد post_id باید آیدی باشه که احتمال زیاد از نوع int هست و احتمالا از نوع auto_increament تعریف کردید ؛

اگه اینجوریه که میگم ؛ این مورد رو هم نباید مقدار بهش بدید و مثل همون تاریخ از کوئری حذفش کنید ؛

اگه فقط از نوع int هست و افزایش خودکار نیست ؛ در این صورت باید مثل یک عدد باهاش رفتار بشه و گرنه مقدار صفر توی جدول میذاره :

این یک مثال هست :

PHP:
 $sql ="INSERT INTO `xxx`.`yyy` (`x_id`) VALUES ('".intval($your_value)."')";
 
آخرین ویرایش:

nafas.php

Well-Known Member
درج تاریخ خورشیدی کار پیچیده ای هست ؛ بهتره تاریخ میلادی ثبت کنید ؛ بعدش موقع خوندن اون رو به میلادی تبدیل کنید

اگه تاریخ رو از نوع timestamp تعریف کنید و مقدار attributes اون رو on update CURRENT_TIMESTAMP بدید ؛ دیگه اصلا نیاز نیست موقع insert توی جدولتون بهش مقدار بدید ؛ چون به صورت خودکار داخلش ثبت میشه .
PHP:
 $sql ="INSERT INTO `group_computer`.`post` (`post_id`, `post_obj`, `post_text`, `post_name`, `post_h`, `post_watch`) VALUES ('NULL', '".$a."', '".$c."', '".$b."', '?', '".$d."')";
هنگام خوندن اطلاعات از جدول هم مطابق روش دوستمون رفتار کنید .

یک توضیح کوچیک :
از نامگذاری متغیرهاتون ؛ به نظر میاد post_id باید آیدی باشه که احتمال زیاد از نوع int هست و احتمالا از نوع auto_increament تعریف کردید ؛

اگه اینجوریه که میگم ؛ این مورد رو هم نباید مقدار بهش بدید و مثل همون تاریخ از کوئری حذفش کنید ؛

اگه فقط از نوع int هست و افزایش خودکار نیست ؛ در این صورت باید مثل یک عدد باهاش رفتار بشه و گرنه مقدار صفر توی جدول میذاره :

این یک مثال هست :

PHP:
 $sql ="INSERT INTO `xxx`.`yyy` (`x_id`) VALUES ('".intval($your_value)."')";
ممنون از دوست خوبم اشكال كارم رو پيدا كردم ممنون حل شد.:rose::)
 

r3001

New Member
اشتباه شما اینه که تاریخ رو اونجوری ذخیره میکنید.

باید همون مقدار تابع time رو که برچسب زمان هست ذخیره کنید.
بعداً هنگام نمایش ، از تابع jdate استفاده کنید.

اینطوری اوّلاً هر قالب دلخواهی رو میتونید از بگیرید ، ثانیاً حجم کمتری از دیتابیس اشغال میشه.
یه نگاهی به http://jdf.scr.ir بیاندازید. مفصّلاً توضیح داده.
 

rezzaz

New Member
من با استفاده از jquery تاریخ میلادی را به فارسی نمایش می دهم در input type=text,... سوالم اینست که چه جوری این تاریخ را در دیتابیس ذخیره کنم؟
چون به صورت null می رود
 

جدیدترین ارسال ها

بالا