PDA

View Full Version : سوال: تبدیل تاریخ های شمسی به میلادی و برعکس و کار با timestamp



maysam.m
سه شنبه 10 اسفند 1389, 17:07 عصر
با سلام

من یه مشکلی پیدا کردم با این تابع های شمسی که براتون شرح میدم.

تابعی که همانند تابع mktime پی اچ پی عمل می کنه رو تعدادی از دوستان برنامه نویس نوشته اند و در نت برای دانلود قرار داده اند که من به دوتای اونها اشاره میکنم:


http://boplo.ir/php/jcalendar-jalali-time-converter-class/
http://www.codeproject.com/KB/applications/PersianCalendarPHP.aspx


من با هر دو کار کردم و جوابب یکسانی گرفتم.
در این فایلها دو تابع هست که یکی تاریخ شمسی رو دریافت میکنه و اون رو تبدیل به timestamp میکنه.

مشکل من اینه که تاریخ شمسی که به timestamp تبدیل میکنم وقتی اون رو مجدد به صورت تاریخ شمسی چاپ میکنم مقداری اختلاف زمان در آن اضافه می شود!

مثلا:




$jcalendar = new jCalendar;

$shamsi_to_timestamp = $jcalendar->mktime(00,00,00,11,01,1389);

echo $jcalendar->date('Y/m/d H:m:s',$shamsi_to_timestamp);

// ۱۳۸۹/۱۱/۰۱ ۰۰:۱۱:۰۰



خوب ما تاریخی رو تبدیل به فرمت timestamp کردیم و سپس اون رو چاپ کردیم. اما تاریخی که تبدیل کردیم دقیقه اش صفر بود ولی حالا 11 دقیقه اضافه شده است!

به نظرتون مشکل از کجاست؟

ممنون

امیـرحسین
سه شنبه 10 اسفند 1389, 20:34 عصر
دوست عزیز شما تابع date رو اشتباه استفاده کردید. کاراکتر خاص دقیقه m نیست i هست!

$c = new Calendar;
$ts = $c->mktime(00,00,00,11,01,1389);
echo $c->date('Y/m/d H:i:s', $ts);

maysam.m
چهارشنبه 11 اسفند 1389, 10:41 صبح
دوست عزیز شما تابع date رو اشتباه استفاده کردید. کاراکتر خاص دقیقه m نیست i هست!

$c = new Calendar;
$ts = $c->mktime(00,00,00,11,01,1389);
echo $c->date('Y/m/d H:i:s', $ts);

ooopss!
چه سوتی دادم! :قهقهه:

داداش واقعا ممنون :چشمک: