# زبان های اسکریپتی > PHP >  تبدیل تاریخ میلادی به شمسی در PHP !

## Timoonia

با عرض سلام خدمت همگی :

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

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

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

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

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

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

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

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

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

----------


## pashaie

با استفاده از کد زیر و البته فایلی که ضمیمه این پست شده شما خیلی راحت می تونی یه تاریخ میلادی رو به شمسی تبدیل کنی


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

----------


## pashaie

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


راستشو بخوای تعریف شما از کارکرد دو تابعی که معرفی کردید یکم گنگه!
من بر اساس حدث و گمانی که میزنم یه قطعه کد برات می نویسم که امیدوارم کد مورد نظر شما هم باشه:


include "jdf.php"

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

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

----------


## javadsoltany

سلام من هم با این مشکل دوستمون مشکل دارم میشه به من هم بگین ممنون میشم.

----------


## mirmousavi.m

روش دیگری هم در php5 وجود داره:
http://oxygenws.com/blog/archives/72-..-..html

----------


## mirmousavi.m

<?php  $fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);  echo "تاریخ: " . $fmt->format(time()) . "\n";  ?>

----------


## ghiravani

ممنونم دوست عزیز.کارم راه افتاد :)

----------


## programminga

تشکر.خدا خیرت دهد افزون و افزونتر

----------


## mbf5923

من از PHP ورژن 5.3 استفاده میکنم
با استفاده از کد فوق پیغام خطای پیدا نشدن کلاس ظاهر میشه:
Class 'IntlDateFormatter' not found

----------


## رضا قربانی

https://barnamenevis.org/showthread.p...DB%8C%D8%AF%29

----------


## masoud_tamizy

> من از PHP ورژن 5.3 استفاده میکنم
> با استفاده از کد فوق پیغام خطای پیدا نشدن کلاس ظاهر میشه:
> Class 'IntlDateFormatter' not found


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

----------


## Edward

echo date("Y/m/d") . "<br />";
include 'jdf.php';
$shamsi = jdate('d / m / Y');
echo $shamsi;


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

----------


## ali_mohammadi_1371

> با استفاده از کد زیر و البته فایلی که ضمیمه این پست شده شما خیلی راحت می تونی یه تاریخ میلادی رو به شمسی تبدیل کنی
> 
> 
> $miladi = "18/10/2009";
> $shamsi = jdate("Y/m/d", strtotime($miladi));


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

----------


## lili.lrp

سلام من مشکل اساسی با تاریخ دارم لطفا اگه کسی میتونه راهنماییم کنه . من میخوام زمانیکه کاربر میخواد پیغام بفرسته همزمان با پیغام تاریخ و ساعت هم وارد دیتابیسم بشه بعد من جایی که میخوام پیغام و نمایش بدم از توی جدول دیتابیس از فیلدی که تاریخ وارد شده خروجی بگیرم میشه کمکم کنید و بگید که چطور این کار و انجام بدم؟ یعنی تاریخ و وارد دیتابیسم کنم؟

----------


## yones_safari

> سلام من مشکل اساسی با تاریخ دارم لطفا اگه کسی میتونه راهنماییم کنه . من میخوام زمانیکه کاربر میخواد پیغام بفرسته همزمان با پیغام تاریخ و ساعت هم وارد دیتابیسم بشه بعد من جایی که میخوام پیغام و نمایش بدم از توی جدول دیتابیس از فیلدی که تاریخ وارد شده خروجی بگیرم میشه کمکم کنید و بگید که چطور این کار و انجام بدم؟ یعنی تاریخ و وارد دیتابیسم کنم؟


درود
تاپیک جداگانه باز میکردید بهتر بود.به هر حال
شما یک فیلد اینتیجر در جدولتون ایجاد میکنید مثلا با نام created_date و هنگامی که کاربری پیغام میفرسته در درون این فیلد created_date مقدار بازگشتی از تابع time پی اچ پی رو ذخیره میکنید.
و وقتی میخوایید نمایش بدید ابتدا باید فایل تابع jdate که بالا ضمیمه شده با نام jdf رو require_once بکنید و بعدش مقدار فیلد created_date رو به آرگومان دوم تابع jdate پاس میدید به شکل زیر:
jdate("Y/m/d", $tmp_record['created_date']);
موفق باشید

----------


## صفر کیلومتر 1389

من هم با این مشکل روبرو شدم
Class 'IntlDateFormatter' not found
سیمیکالن رو هم برداشتم
extension=php_intl.dll
اما همون آش و همون کاسه
کسی می دونه مشکل چیه؟

----------


## id1385

با سلام
اگه در استفاده از خود 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

این کدهایی که نوشتید رو باید کجا بزاریم؟!!

----------

