PDA

View Full Version : تبدیل تاریخ میلادی به شمسی در PHP !



Timoonia
چهارشنبه 19 خرداد 1389, 13:56 عصر
با عرض سلام خدمت همگی :

بله , این موضوع خیلی تکراریه .

ولی متآسفانه من نتونستم تبدیل رو با راهنماییهای موجود انجام بدم . :ناراحت:

تنها چیزی که من واقعآ احتیاج دارم اینه که بهم نشون بدین که چطوری تاریخ میلادی رو به شمسی تبدیل کرد که در دیتابیس بصورت میلادی ذخیره بشه .

من یه تابع به اسم message_date دارم که حاوی یک تاریخ میلادی به فرم 18/10/2009 هست .

لطفآ بهم نشون بدید که چطوری میتونم تابعی به اسم p_message_date داشته باشم که تاریخ میلادی موجود در تابع message_date رو به شمسی نمایش بده .

لینکهای زیادی رو دوستان بهم پیشنهاد کردن ولی متأسفانه بعلت اینکه من زیاد در زبان PHP سر رشته ندارم , موفق به استفاده از کدها نشدم .

لذا خیلی خیلی ممنون میشم اگر کسی فقط کد تبدیل تابع بالا رو برام بزاره .

میدونم زیاده خواهیه که کد آماده رو میخوام ولی باور کنید که بهش احتیاج دارم و خیلی سعی کردم خودم تبدیل رو انجام بدم ولی نشد . :ناراحت:

:قلب: شاد و پیروز باشید دوستان .

pashaie
چهارشنبه 19 خرداد 1389, 15:38 عصر
با استفاده از کد زیر و البته فایلی که ضمیمه این پست شده شما خیلی راحت می تونی یه تاریخ میلادی رو به شمسی تبدیل کنی



$miladi = "18/10/2009";
$shamsi = jdate("Y/m/d", strtotime($miladi));

pashaie
چهارشنبه 19 خرداد 1389, 15:45 عصر
لذا خیلی خیلی ممنون میشم اگر کسی فقط کد تبدیل تابع بالا رو برام بزاره .
راستشو بخوای تعریف شما از کارکرد دو تابعی که معرفی کردید یکم گنگه!
من بر اساس حدث و گمانی که میزنم یه قطعه کد برات می نویسم که امیدوارم کد مورد نظر شما هم باشه:



include "jdf.php"

function message_date(){
return date("Y/m/d");
}

function p_message_date($date){
return jdate("Y/m/d", strtotime($date));
}

javadsoltany
چهارشنبه 19 خرداد 1389, 22:33 عصر
سلام من هم با این مشکل دوستمون مشکل دارم میشه به من هم بگین ممنون میشم.

mirmousavi.m
پنج شنبه 20 خرداد 1389, 00:28 صبح
روش دیگری هم در php5 وجود داره:
http://oxygenws.com/blog/archives/72-..-..html

mirmousavi.m
پنج شنبه 20 خرداد 1389, 00:53 صبح
<?php $fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL); echo "تاریخ: " . $fmt->format(time()) . "\n"; ?>

ghiravani
پنج شنبه 26 آبان 1390, 01:34 صبح
ممنونم دوست عزیز.کارم راه افتاد :)

programminga
جمعه 14 بهمن 1390, 15:09 عصر
تشکر.خدا خیرت دهد افزون و افزونتر

mbf5923
جمعه 14 بهمن 1390, 15:26 عصر
من از PHP ورژن 5.3 استفاده میکنم
با استفاده از کد فوق پیغام خطای پیدا نشدن کلاس ظاهر میشه:
Class 'IntlDateFormatter' not found

رضا قربانی
شنبه 15 بهمن 1390, 23:36 عصر
http://barnamenevis.org/showthread.php?288698-%D9%87%D9%85%D9%87-%DA%86%DB%8C%D8%B2-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D8%AC%D9%84%D8%A7%D9%84%DB%8C-%28%D8%AC%D8%AF%DB%8C%D8%AF%29

masoud_tamizy
یک شنبه 16 بهمن 1390, 20:23 عصر
من از PHP ورژن 5.3 استفاده میکنم
با استفاده از کد فوق پیغام خطای پیدا نشدن کلاس ظاهر میشه:
Class 'IntlDateFormatter' not found

من هم دقیقا با همین مساله روبرو شدم !!! چه کارش باید کرد ؟ اصلا به نظر نمی رسه که همچنین چیزی کاملا درست باشه !!!

Edward
شنبه 11 شهریور 1391, 16:27 عصر
echo date("Y/m/d") . "<br />";
include 'jdf.php';
$shamsi = jdate('d / m / Y');
echo $shamsi;


فایل رو هم از سایت سازنده بگیرید .......
http://jdf.scr.ir

ali_mohammadi_1371
پنج شنبه 04 آبان 1391, 19:03 عصر
با استفاده از کد زیر و البته فایلی که ضمیمه این پست شده شما خیلی راحت می تونی یه تاریخ میلادی رو به شمسی تبدیل کنی



$miladi = "18/10/2009";
$shamsi = jdate("Y/m/d", strtotime($miladi));

دستت درست. خیلی بکارم میاد

lili.lrp
جمعه 04 مرداد 1392, 04:14 صبح
سلام من مشکل اساسی با تاریخ دارم لطفا اگه کسی میتونه راهنماییم کنه . من میخوام زمانیکه کاربر میخواد پیغام بفرسته همزمان با پیغام تاریخ و ساعت هم وارد دیتابیسم بشه بعد من جایی که میخوام پیغام و نمایش بدم از توی جدول دیتابیس از فیلدی که تاریخ وارد شده خروجی بگیرم میشه کمکم کنید و بگید که چطور این کار و انجام بدم؟ یعنی تاریخ و وارد دیتابیسم کنم؟

yones_safari
جمعه 04 مرداد 1392, 04:40 صبح
سلام من مشکل اساسی با تاریخ دارم لطفا اگه کسی میتونه راهنماییم کنه . من میخوام زمانیکه کاربر میخواد پیغام بفرسته همزمان با پیغام تاریخ و ساعت هم وارد دیتابیسم بشه بعد من جایی که میخوام پیغام و نمایش بدم از توی جدول دیتابیس از فیلدی که تاریخ وارد شده خروجی بگیرم میشه کمکم کنید و بگید که چطور این کار و انجام بدم؟ یعنی تاریخ و وارد دیتابیسم کنم؟
درود
تاپیک جداگانه باز میکردید بهتر بود.به هر حال
شما یک فیلد اینتیجر در جدولتون ایجاد میکنید مثلا با نام created_date و هنگامی که کاربری پیغام میفرسته در درون این فیلد created_date مقدار بازگشتی از تابع time پی اچ پی رو ذخیره میکنید.
و وقتی میخوایید نمایش بدید ابتدا باید فایل تابع jdate که بالا ضمیمه شده با نام jdf رو require_once بکنید و بعدش مقدار فیلد created_date رو به آرگومان دوم تابع jdate پاس میدید به شکل زیر:

jdate("Y/m/d", $tmp_record['created_date']);
موفق باشید

صفر کیلومتر 1389
پنج شنبه 14 فروردین 1393, 19:34 عصر
من هم با این مشکل روبرو شدم
Class 'IntlDateFormatter' not found
سیمیکالن رو هم برداشتم
extension=php_intl.dll
اما همون آش و همون کاسه
کسی می دونه مشکل چیه؟

id1385
پنج شنبه 14 فروردین 1393, 22:10 عصر
با سلام
اگه در استفاده از خود php مشکلی هست میتونید همونطور که دوستان فرمودن از تاریخ جلالی استفاده نمایید.
از فانکشن زیر که نمونه سادشو نوشتم میتونید استفاده کنید توی این فانکشن بصورت ساده دوتا حالت تعریف کردم.



echo sprintf($tpl, convert_to_jalali('2013-10-30 10:03:53')); echo sprintf($tpl, convertNumber(convert_to_jalali('2011-03-30 10:03:53'))); echo sprintf($tpl, "امروز" . convertNumber(convert_to_jalali(date("Y-m-d"), 'M')));
// چرا بهم میریزه ؟؟

mihangar
پنج شنبه 23 اردیبهشت 1395, 16:00 عصر
این کدهایی که نوشتید رو باید کجا بزاریم؟!!