تبلیغات
Fact World - تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php

آموزش برنامه نویسی و مهارتهای وب

article 

تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php

php-date-time یکی از دردسرهای همیشگی مدیران وبلاگ ها و سایت های فارسی زبان، مشکل نمایش تاریخ شمسی در صفحاتشان است، البته این مشکل برای سایت ها نمود بیشتری دارد چرا که وبلاگ ها معمولا از طریق سرویس دهنده خود می توانند تاریخ مطالب و محتوا را به بازدیدکنندگان به راحتی نشان دهند، اما در سایت ها وضع کمی فرق می کند، چرا که تاریخ قریب به اتفاق سرورها به میلادی است و از طرفی منطقه زمانی نیز در بیشتر سرورها بر روی GMT قرار دارد، در حالی که کشور ما ایران، به صورت استاندارد در منطقه زمانی 3:30+ GMT (و با تغییر ساعت در منطقه زمانی 4:30+ GMT) قرار گرفته است؛ در این مطلب می خواهیم به کمک برنامه مبدّل تاریخ هجری شمسی (jdf) که توسط برنامه نویسان ایرانی و به PHP نوشته و توسعه داده شده است، روش تبدیل تاریخ میلادی به شمسی را آموزش دهیم و مشکل منطقه زمانی را نیز حل کنیم.

دانلود مبدل تاریخ میلادی به شمسی به زبان php


قبل از بررسی ادامه آموزش، ابتدا آخرین نسخه برنامه مبدّل تاریخ هجری شمسی (jdf) را از سایت http://jdf.scr.ir دانلود یا از لینک زیر نسخه ای از آن را از وبگو دریافت کنید:
دانلود برنامه مبدّل تاریخ هجری شمسی (jdf)

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


پس از دریافت فایل بالا، ابتدا تاریخ و زمان میلادی را به صورت Timestamp استاندارد (روز-ماه-سال) و (ثانیه-دقیقه-ساعت) از دیتابیس یا از سرور دریافت می کنیم، سپس پس از تجزیه موارد اضافه از طریق تابع explode در php و نهایتا تبدیل آرایه ها به متغیر با کمک list، با تابع mktime،  تاریخ و زمان را به صورت Unix در می آوریم؛ سپس تاریخ را به تابع jdate می دهیم و تبدیل شده شمسی آن را دریافت می کنیم؛ مثال زیر روشن است:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | تبدیل تاریخ میلادی به شمسی</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
}
</style>
</head>
<body>
<?php
$timezone = 0;//برای 3:30 عدد 12600 و برای 4:30 عدد 16200 را تنظیم کنید
$now = date("Y-m-d", time()+$timezone);
$time = date("H:i:s", time()+$timezone);
list($year, $month, $day) = explode('-', $now);
list($hour, $minute, $second) = explode(':', $time);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
include ('jdf.php');
$jalali_date = jdate("زمان: H:i:s - تاریخ: Y/m/d",$timestamp);
echo $jalali_date;
?>
<hr />
خروجی به صورت تاریخ و زمان نشان داده می شود
</body>
</html>
پیش نمایش
توضیح:
- چنانچه خطای Fatal error: Call to undefined function: date_default_timezone_set() on line 12 را دریافت کردید، خط مربوط به date_default_timezone_set را در لاین 12 حذف کنید یا به صورت کامنت در آورید (با افزودن // در ابتدای آن)، نمایش خطا به این دلیل است که قابلیت date_default_timezone_set تنها برای نسخه 5.1.0 به بعد در php قابل دسترس است.
- در کد بالا ما تاریخ را در متغیر now و زمان را در متغیر time داریم و اختلاف از GMT را برابر صفر قرار داده ایم (اگر زمان سرور شما بر روی GMT تنظیم شده است باید برای اختلاف 3:30 عدد 12600 و برای 4:30 عدد 16200 را قرار دهید).
- هر ساعت اختلاف از GMT برابر است با 60 دقیقه ضرب در 60 ثانیه (60*60) و نتیجه برابر است با 3600 ثانیه (یک ساعت برابر 3600 ثانیه)؛ 3:30 برابر می شود با 12600 و 4:30 برابر است با 16200 ثانیه.
- list، آرایه های حاصل از تجزیه با تابع explode را در مقادیر متغیرها ذخیره می کند.
- تابع jdate یکی از توابع مفید و اصلی فایل jdf.php است که تاریخ میلادی را به شمسی تبدیل می کند.
- نهایتا نیز متغیر jalali_date را به خروجی می دهیم.
section دسته بندی: آموزش کاربردی - آموزش کاربردی PHP -


یکشنبه 13 مهر 1393

نظرات ()


یکشنبه 26 شهریور 1396 07:18 ب.ظ
Now I am going to do my breakfast, once having my breakfast coming again to read further news.
پنجشنبه 16 شهریور 1396 08:09 ق.ظ
Hi there, I believe your website could possibly be
having internet browser compatibility problems.
When I look at your web site in Safari, it looks fine but when opening in I.E., it has
some overlapping issues. I just wanted to provide
you with a quick heads up! Other than that, fantastic
blog!
یکشنبه 15 مرداد 1396 11:41 ب.ظ
Excellent post. Keep posting such kind of information on your page.
Im really impressed by your site.
Hi there, You've performed a great job. I'll definitely
digg it and for my part recommend to my friends. I am confident
they'll be benefited from this web site.
پنجشنبه 24 فروردین 1396 06:01 ب.ظ
BHW
This site was... how do I say it? Relevant!! Finally I've found something that helped me.

Thanks!
یکشنبه 13 فروردین 1396 08:26 ب.ظ
BHW
What's up to every single one, it's genuinely a pleasant for
me to go to see this site, it consists of priceless Information.

نظر خود را ثبت کنید:

 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر



آگهی
آموزش طراحی سایت
webgoo.ir

آموزش برنامه نویسی و مهارتهای وب
امکانات جانبی


IP شما: ( )