Boplo.ir
rss


جستجو

آخرین مطالب

 

 

مطالب همینجوری

 

 

بر و بچ

MyView Tween


دوستشون دارم


بیلبورد

دامین برای فروش: CleanCode.ir
FastFeed.ir
Fonvi.com

تماس


انواع و اقسام سفارشات طراحی و برنامه نویسی سایت پذیرفته میشه. از سایت حمایت از خرگوشهای صورتی گرفته تا سایت قاچاق اعضای بدن!
تماس

 

از بيماران سرطاني حمايت كنيم

A new begining
AHHP presents

 

مبدل شمسی تابع date
25 اسفند 1387 ساعت 02:57

پی اچ پی

مادایکس به خوبی فارسی و RTL شده (البته با زحمات افرادی از جمله آقای زارع) ولی یه چیز اساسی کم داشت و اون هم تاریخ شمسی به عنوان خروجی تاریخ بود و از اونجایی که من یه آدم فوق العاده به دردبخور و مفید برای جامعه، همشهریان، هموطنان نیکو و سایر انسانهای کره خاکی در طی همه دوره های تاریخی هستم، تصمیم به بالا زدن آستینها گرفتم و شروع به نوشتن اسکریپت مبدل تاریخ میلادی به شمسی کردم.

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

یه کلاس خیلی خوب تو سایت IranPHP پیدا کردم که نویسنده اش آقای حق پرست بود. این کلاس رو تغییر دادم و با استفاده از متدهای مبدلش، تابع ()date رو با تمام فرمتهای معتبرش، برای شمسی آماده کنم.
من این موفقیت رو مدیون شش و خرده ای میلیارد دوستدارم هستم خفن

معرفی کلاس
Properties (مشخصه ها)
نام توضیج
jformat$ آرایه انجمنی حاوی کلیه کاراکترهای معتبر برای تابع date ولی با مقدار شمسی و فارسی
format$ مانند jformat$ ولی برای تاریخ میلادی

 

Methods (متدها)
نام توضیج پارامترها مقدار بازگشتی
jdate شبیه ساز تابع ()date برای تاریخ شمسی
  • format$ : فرمت معتبر تابع ()date
  • stamp$ : برچسب زمان UNIX - اختیاری
  • GMT$ : اختلاف ساعت جهانی به ثانیه (ایران=12600) - اختیاری
فرمت ترجمه شده بصورت string
gregorian_to_jalali مبدل تاریخ میلادی به شمسی
  • g_y$ : سال میلادی
  • g_m$ : ماه میلادی
  • g_d$ : روز میلادی
آرایه سه عنصری حاوی به ترتیب سال، ماه و روز شمسی
jalali_to_gregorian مبدل تاریخ شمسی به میلادی
  • j_y$ : سال شمسی
  • j_m$ : ماه شمسی
  • j_d$ : روز شمسی
آرایه سه عنصری حاوی به ترتیب سال، ماه و روز میلادی
ReturnMonthName مشخص کننده نام ماه شمسی monname$ : عدد ماه مورد نظر (1 تا 12) نام فارسی ماه بصورت string
div متد توکار برای گرفتن براکت تقسیم دو عدد a$ ، b$ : اعداد ورودی عدد صحیح

نمونه استفاده:

include_once "jcalendar.class.php";
$cal = new Calendar;
echo $cal->jdate("H:i Y/m/d");

خروجی کد بالا مثلا اینه: 1387/12/24 03:35

 

علت اصلی اینکه این مبدل بصورت کلاس ایجاد شده و نه بصورت یک تابع، این بوده که مشخصه های format$ و jformat$ حاوی تمامی کاراکترهای معتبر تابع ()date هستند و از طریق کلاس امکان دسترسی به همه اونها بدون فراخوانی خود تابع ()date یا متد ()jdate هست.
کافیه یکبار متد jdate با هر فرمت ورودی فراخوانی بشه تا این مشخصه ها مقدار بگیرن. نمونه:

include_once "jcalendar.class.php";
$cal = new Calendar;
echo $cal->jdate("H:i Y/m/d");
echo $cal->jformat['Z'];
echo $cal->format['U'];

 

 

کاراکترهای معتبر
کاراکتر توضیج نمونه
d روز از ماه بصورت دو رقمی عددی بین 01 تا 31
D نام روز در هفته، فقط حرف اول پ (=پنجشنبه)
j روز از ماه. تک رقمی برای اعداد تک رقمی عددی بین 1 تا 31
l نام روز در هفته شنبه
N شماره روز در هفته، از 1 تا 7 1 (=شنبه)
S حاوی عبارت "ام" 25ام
w شماره روز در هفته، از 0 تا 6 0 (=شنبه)
z روز در سال عددی بین 0 تا 365
W تعداد هفته گذشته از سال 23 (=23امین هفته سال)
F نام کامل ماه مهر
m ماه از سال بصورت دورقمی عددی بین 01 تا 12
M * نام ماه از سال. مشابه F فروردین
n ماه از سال بصورت. تک رقمی برای اعداد تک رقمی عددی بین 1 تا 12
t تعداد روز در ماه عددی بین 29 تا 31
L نشانگر سال کبیسه 1 برای کبیسه و 0 برای غیرکبیسه
o سال چهاررقمی 1388
Y سال چهاررقمی 1366
y سال دورقمی 87
a اوقات روز (am و pm) ب.ظ و ق.ظ
A اوقات روز بصورت کامل (am و pm) بعد از ظهر و قبل از ظهر
B زمان اینترنتی عددی بین 000 تا 999
g ساعت در روز. تک رقمی برای اعداد تک رقمی عددی بین 1 تا 12
G ساعت در روز. تک رقمی برای اعداد تک رقمی عددی بین 0 تا 23
h ساعت در روز بصورت دورقمی عددی بین 01 تا 12
H ساعت در روز بصورت دورقمی عددی بین 00 تا 23
i دقیقه در ساعت بصورت دورقمی عددی بین 00 تا 59
s ثانیه در ساعت بصورت دورقمی عددی بین 00 تا 59
u میکروثانیه مثل 54321
e شناسه موقعیت زمانی (Timezone) UTC
I مشخص کننده روز و شب 1 برای روز و 0 برای شب
O اختلاف ساعت جهانی (GMT) 0330+ (برای ایران)
P اختلاف ساعت جهانی (GMT) 03:30+ (برای ایران)
T مخفف شناسه موقعیت زمانی (Timezone) MDT
Z اختلاف ساعت جهانی بر اساس ثانیه 12600+ (برای ایران)
c نمایش زمان کامل Y-m-d h:i:s P
r نمایش زمان کامل l j F Y h:i:s O
U برچسب زمان (Timestamp) 123588545

* کاراکتر M در تابع اصلی، سه حرف اول ماه مانند Jan و Mar غیره رو برمی گردونه که چون همانندسازی این روش در فارسی رایج و جالب نیست، از نام کامل ماه استفاده شده.

 

Download jcalendar class

 

تو چی فکر می کنی؟


محسن مگاهرتز!؟ :) : این کار فقط میتونه کار یک امیرحسین کارکشته باشه که فقط خودتی.
مخ لصیم... mokh less im
(1 سال و 5 ماه و 8 روز و 4 ساعت و 50 دقیقه پیش)

Hamed Valiolahi : خیلی ممنون دوست گرامی، خیلی مفید بود ;)
(1 سال و 4 ماه و 21 روز و 14 ساعت و 28 دقیقه پیش)

داوود : ممنون !!!
(1 سال و 4 ماه و 17 روز و 18 ساعت و 16 دقیقه پیش)

پارسا : آقا دستت درد نکنه . خوبیش این مطلبی که تو نوشتی اینه که زیاد حاشیه نرفتی و رفتی سر اصل مطلب .
بعضی از این سایت های آموزشی زیاد شر و ور می نویسن . راستی پیروزی قاطعانه آقای احمدی نژاد رو به همه طرفدارانش که خودمم یکی از اونام تبریک میگم و براش آروزی موفقیت دارم
(1 سال و 2 ماه و 21 روز و 18 ساعت و 16 دقیقه پیش)

بهنام : عالی بود من توی یک وب سایت جالب از این ماژول استفاده میکنم که حتما لینکش رو به شما ارسال خواهم کرد.
(1 سال و 23 روز و 17 ساعت و 15 دقیقه پیش)

آرمان : بسیار عالیه. خیلی بدرد من خورد.
(5 ماه و 5 روز و 22 ساعت و 25 دقیقه پیش)

اشکان : می گم این قضیه jdate این‌ها رو من قبلا دیده بودم
و نیازی به فکر زیاد نبود چون موجود بود ! http://tinyurl.com/28zswu2

البته یک سری روش های استفاده کردی که من نگاه نکردم ولی شاید بهینه شده باشه و این می تونه کار مفیدی باشه که تو کردی نه نوشتن این تابع
(3 ماه و 3 روز و 20 ساعت و 22 دقیقه پیش)
نام:
ایمیل: (منتشر نخواهد شد!)
وب سایت:

کد امنیتی: اگر در خواندن این کد مشکلی دارید، اینجا کلیک کنید تا صفحه بازخوانی شود.

 

me امیرحسینم. اسمم رو دوست دارم، خودم رو دوست دارم. تهران زندگی می کنم. دانشجوی رشته صنایع هستم شغل درست و حسابی ندارم. طراحی وب می کنم ولی همه اش واسه سرگرمی بوده. برنامه نویس PHP هستم. برنامه نویسی و وقت گذرونی با کامپیوتر تنها کاریه که خسته ام نمی کنه.
آدم خیلی سردی هستم، اینو دور و وری هام میگن. ولی به نظر خودم سرد نیستم در واقع گرمای خودم رو کم بروز می دم! آدما رو اغلب دوست دارم غیر از اون مواقعی که اونا من رو نادیده میگیرن!

این سایت رو بعد از کلی اینور اونور دوباره راه انداختم تا هرچی دوست دارم توش بنویسم، چه کسی بخونه چه نخونه.
خلاصه اینجا خونه منه،

به خونه امیرحسین خوش اومدی...

MODx | Template World