تالار گفتمان nCIS.ir

نسخه‌ی کامل: کلاس JDateTime
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
بالاخره یکی باید فاتحه ی توابع jdate رو که تقریبا منقرض شدند رو توی وب ایران میخوند :دی خب برادرا من تقریبا فاتحه رو خوندم و یه کلاس مبتنی بر کلاسه DateTime خوده php نوشتم (البته از کدهای بقیه ی دوستان هم خیلی استفاده کردم که اسمشون بالای کلاس هست) این کلاسه ما همه ی قابلیت های کلاس DateTime پی اچ پی رو داره (به غیر از یکی که اونم وقت کنم ایشالاه اضافه میکنم) حالا یه مثال میزنم برید حالشو ببرید:
$d1 = (new JDateTime(new DateTimeZone('Asia/Tehran')))->modify('+10 day'); // jalali date
echo (new DateTime('now', new DateTimeZone('Asia/Tehran')))->diff($d1)->format('%R%a day'); // Gregorian - output +10 day :)

echo '<br>';

$d1 = (new JDateTime(new DateTimeZone('Asia/Tehran')))->setDate(1394, 4, 3); // jalali date
echo (new DateTime('now', new DateTimeZone('Asia/Tehran')))->diff($d1)->format('%R%a day'); // Gregorian - output -8 day :)

این یه گوشه از امکاناته باحاله این کلاس :دی

---

خب برادرا توی کلاس مشارکتم نکردید نکردید :دی (البته مشارکتتون هم باعث دلگرمیه طبیعتا) ولی مطمئنم این کلاس لازمتون میشه پس اگه باگی چیزی دیدید توی github اطلاع بدید :)
اگه قابل دونستید به بقیه ی برنامه نویسا هم اطلاع بدید و یا توی انجمن ها کلاس رو معرفی کنید.

---

فقط دوستان متاسفانه من وقت داکیومنت نوشتن ندارم شاید در آینده تکمیل کردم... (البته داکیومنت متد ها کامله منظورم راهنمای استفاده هستش) همه چی تقریبا مشابه کلاس DateTime پی اچ پی هست پس میتونید از راهنمای اون استفاده کنید، فقط به جای تاریخ های میلادی تاریخ شمسی وارد کنید همه جا.

---

لینکه github: https://github.com/elegantweb/JDateTime
فقط یه سری شبهات توی بخش createFromFormat وجود داره که نیاز به راهنمایی دارم.
مثلا من الویت رو timestamp گذاشتم، یعنی اگه تاریخ + timestamp وارد بشه، دیگ تاریخو چک نمیکنه و از timestamp استفاده میکنه، نمیدونم این درسته یا نه :-؟
و یکی هم فرمت y هست، توی میلادی اینو از سال 1970-2069 گذاشته، توی شمسی نمیدونم چند بزاریم خوبه :-؟
اول میشه بگید مشکل Jdate چی بودهو شما چه کار کردین دقیقا؟ :-؟؟
jdate از توابع date توی php استفاده میکنه، که تقریبا منقرض شدن و کلاس DateTime جایگزینشون شده.
توی jdate شما نمیتونی بیشتر از سال 2038 رو محاسبه کنی.
توی jdate شما نمیتونی فرمت شمسی رو به تاریخ تبدیل کنی.
توی jdate نمیتونی مستقیما اختلافه 2 تاریخ شمسی یا یه تاریخ شمسی با یه تاریخ میلادی (یا برعکس) رو بدست بیاری.
توی jdate امکان تبدیل مستقیم تاریخ به یه فرمت دیگ نیست (البته تو JDateTime هم فعلا ننوشتم) ولی توی DateTime هست.
توی jdate نمیتونید تاریخ با فرمت ISO رو به هر فرمتی که میخواید تبدیل کنید و باید 10 بار لقمه رو بچرخونید تا بشه.
jdate شی گرا نیست.
---
در کل یه نگاه به http://php.net/manual/en/class.datetime.php بندازید متوجه میشید.
بنظرم با توجه به نصب نبودن افزونه DateTime توی خیلی از هاستهای اشتراکی، استفاده از JDF گزینه جایگزین مناسبی باشه.
(11-04-1394، 06:04 ب.ظ)ADMIN نوشته: [ -> ]بنظرم با توجه به نصب نبودن افزونه DateTime توی خیلی از هاستهای اشتراکی، استفاده از JDF گزینه جایگزین مناسبی باشه.

نقل قول:There is no installation needed to use these functions; they are part of the PHP core.

http://php.net/manual/en/datetime.installation.php
نقل از همون منبع:
نقل قول:
Note: Experimental DateTime support in PHP 5.1.x

Although the DateTime class (and related functions) are enabled by default since PHP 5.2.0, it is possible to add experimental support into PHP 5.1.x by using the following flag before configure/compile: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1

البته تعداد هاستهایی که هنوز از نسخه 5.1 استفاده میکنن خیلی خیلی کمه و میشه اون رو نادیده گرفت. بهرصورت تلاشتون قابل تقدیره و چیزی که اون رو قشنگتر میکنه، انتشار بازمتن توی GitHub هست.
هدف راحتیه کاره برنامه نویسای ایرانی افزایش سرعته توسعه و استفاده از استاندارد های جدید بوده ولی متاسفانه به دلیل کمبود زمان نمیتونم این کلاس رو تو انجمن های مختلف معرفی کنم و به برنامه نویسا بشناسونم ولی وظیفم بود کلاس رو به صورت متن باز منتشر کنم تا شاید یه بنده خدایی دید و استفاده کرد :دی
---
یه جا یه دوست خوب نوشته بود وقتی تکنولوژی به وجود میاد که نیازی بهش باشه، پس ما باید از آخرین روش ها و تکنولوژی ها استفاده کنیم تا هم کسب و کار خودمونو توسعه بدیم و هم سهمی هر چند اندک توی توسعه ی کشورمون داشته باشیم.
انتشار نسخه 2.1.3
بهبود کلی برنامه، رفع ایرادات جزئی