تاريخ استطيع قرائته

By mostafa farghaly

السلام عليكم و رحمه الله تعالى و بركاته

اقوم حاليا ببرمجه تطبيق شبيه بقارىء rss ، و كنت بحاجه لتحويل التاريخ الذى كتب فيه الموضوع إلى صيغه يسهل قرائتها بحيث يحول تاريخ قديم مثل Mon Aug 24 2:30:00 2009 إلى منذ ساعه و 30 دقيقه ، بعد بحث بسيط وجدت وظيفه بإسم prettyDate كتبها john resig مطور ال jQuery ، لكنها لن تعمل معى لأنها تعطى الفرق بالدقيقه و الساعه و اليوم و الاسبوع و انا ااريدها ان تعمل من الثانيه حتى السنه ، ثم ان prettyDate مقتصره على تحويل الوحدات إلى اللغه الانجليزيه فقط مثل days و weeks … الخ ، و انا اريد وظيفه تتعامل بالعربيه مع العلم ان العربيه اكثر تعقيدا حيث هناك مفرد و مثنى و جمع و قواعدهم مختلفه مثل يوم ، يومين ، 3 ايام ، 11 يوم ، لاحظ ان يوم تكررت فى المفرد و الجمع ههههههه :D .

قمت بكتابه وظيفه بإسم dateICanRead تقبل تاريخ فى الماضى كنص او كائن من نوع Date و ترجع لك الفرق بصيغه مقروءه كما توضح الامثله التاليه :

alert("منذ " + dateICanRead("Mon Aug 24 14:50:00 2009"));
/*منذ دقيقتين و 30 ثانيه*/
alert("منذ " + dateICanRead("Sun Aug 23 06:10:00 2009"));
/*منذ يوم و 8 ساعات و 47 دقيقه و 17 ثانيه*/
alert("منذ " + dateICanRead("Aug 11 00:00:00 2008"));
/*منذ سنه و اسبوع و 6 ايام و 14 ساعه و 58 دقيقه و 30 ثانيه*/
alert("منذ " + dateICanRead("Aug 12 00:00:00 2009"));
/*منذ اسبوع و 5 ايام و 15 ساعه 8 دقائق و 38 ثانيه*/

الوظيفه dateICanRead تقبل عباره تانيه و هى عدد الوحدات التى تريدها كما توضح الامثله التاليه :

alert("منذ " + dateICanRead("Aug 11 00:00:00 2008", 1));
/*منذ سنه*/
alert("منذ " + dateICanRead("Aug 11 00:00:00 2008", 2));
 /*منذ سنه و اسبوع*/

يمكنك رؤيه الكود و تحيميل ملف dateICanRead.js من هنا .

الأوسمة: ,

6 تعليقات إلى “تاريخ استطيع قرائته”

  1. محمد جلال يقول:

    هذه الداله فيها خطأ صغير
    وهي أنها لاتفرق ماإذا كان الشهر 31 يوم أو 30 أو 28 أو 29
    وجربها ولاتبخل علينا بالنتيجه

    • mostafa farghaly يقول:

      هذه النقطه كانت فى اعتبارى يا محمد ، يمكننى معرفه ذلك لكنى لم ارد ان ازيد الامر تعقيدا داخل كل loop و ليس هذا الذى اريده ، و اخترت الرقم 30 حتى يكون وسطا بين الارقام التى ذكرتها كلها ، و لنفرض ان الشهر 28 يوم ، لن تفرق مع المستخدم ان قلت له منذ شهر او منذ 28 يوم لأنه لا يهمه فى حالتى علم التاريخ بالظبط ، يريد معرفه ما مدى قدم او حدث الموضوع لأن هناك مواضيع منذ ساعه و الاخرى منذ اسبوع و الاخرى منذ 3 دقائق المهم ان يكون هناك context قريب جدا من الزمن الحقيقى ، اذا اراد معرفه التوقيت بالظبط يمكنك المرور على الرابط مثلا سيظهر له tooltip بالتاريخ الحقيقى الذى دخل الوظيفه dateICanRead

  2. عمر الدليمي يقول:

    روعة يا مصطفى :) ،

    • mostafa farghaly يقول:

      @عمر فينك يا راجل بقالى كتير اوى مشوفتكش ، و الف مبروك على التعيين فى شركه SIT و على الخبره اللى هتكتسبها من الاحتكاك مع فريق العمل و مشاريع حقيقيه .

  3. almhajer يقول:

    شكرا جزيلا

    • mostafa farghaly يقول:

      @almhajer الشكر لله ، العفو

اترك رد