النتائج 1 إلى 6 من 6

الموضوع: [Class] : التحـكم بالوقـت و التاريـخ والعمليـات عليهـما

  1. #1
    عضو جديد
    تاريخ التسجيل
    May 2010
    المشاركات
    8

    [Class] : التحـكم بالوقـت و التاريـخ والعمليـات عليهـما



    السلام عليكم ورحمة الله تعالى وبركاته
    اليوم بحول الله انتهيت من برمجة كلاس للتحكم في التاريخ و الوقت حسب Offset :app:
    وأيضا بعد الدوال الاخرى كالعمليات على التواريخ ...

    المبرمج : عبدالله بن رحمون
    الكلاس : SimpleTime
    الاصدار : 0.1
    التوافقية : Php 5 - Php 6

    الكلاس :

    كود PHP:
    <?
    /*
    * Class      : SimpleTime
    * Version    : 0.1 Beta
    * Author     : Abdellah BEN RAHMOUN
    * Date       : 19 October 2010
    * Copyright  : Abdellah BEN RAHMOUN
    * License    : GNU LESSER GENERAL PUBLIC LICENSE
    * This Class Is Programmed For Configuration Of Time 
    * PhpVersion > Php 5  (Supported Php6)
    */
    Class SimpleTime
    {
        Public Function 
    Config($Ofsset)
     {
     
     
    date_default_timezone_set($this->ZoneNameByOffset($Ofsset));
     }
        Function 
    ZoneNameByOffset($Vars)
        {
         
    $Vars *= 3600;
         IF( 
    timezone_name_from_abbr(""$Vars0) == "" 
            {
             Return 
    $this->LocalTimezone();
            }
            Else
         {
                 Return 
    timezone_name_from_abbr(""$Vars0);
      } 
         
        }
        Public Function 
    LocalTimezone()
        {
            
    date_default_timezone_set('UTC');
            
    $iTime time();
            
    $arr localtime($iTime);
            
    $arr[5] += 1900
            
    $arr[4]++;
            
    $iTztime = @gmmktime($arr[2], $arr[1], $arr[0], $arr[4], $arr[3], $arr[5], $arr[8]);
            
    $offset doubleval(($iTztime-$iTime)/(60*60));
             Return 
    timezone_name_from_abbr(""$offset0);
        } 
        Public Function 
    DateAdd($Per,$N,$Date,$Type)
        {
            
    $Per  Strtolower($Per);
            
    $Date Strtotime($Date);
          Switch (
    $Per)
         {
             Case 
    "y" $N*=12;
           Case 
    "m" :
              
    $Date Mktime(Date("H",$Date),Date("i",$Date)
                    ,
    Date("s",$Date),Date("n",$Date)+$N
                    
    ,Date("j",$Date),Date("Y",$Date));
           
    $N 0;
          Break;
                Case 
    "w" $N*=7;
                Case 
    "d" $N*=24;
                Case 
    "h" $N*=60;
                Case 
    "n" $N*=60;
         }
         Return 
    Date($Type $Date $N);
        }
        Public Function 
    DateDiff($Date1,$Date2)
        {
            
    $Date  Strtotime($Date1) - Strtotime($Date2);
            Return 
    Floor($Date/(60*60*24));
        }
    }

    ?>


    أمثلة

    التحكم بالتاريخ حسب الاوفسيت

    كود PHP:
    $Myvar = new SimpleTime();
    $Myvar -> Config(4); 

    قم بتغيير رقم 4 بما يناسبك ك -3 او +12 او -7 والقيمة 0 تعني توقيت غرنويتش GMT
    او ضع قيمة Local وسيطبع لك الوقت المحلي لدى كل زائر
    وبهدا سيتغير كل توقيت السيرفر
    وطريقة طباعة التاريخ كالعادة لم يتغير شيء
    كود PHP:
    Echo Date("d - h"); 

    طريقة اظهار اسم المنطقة التي لها توقيت محدد
    كود PHP:
    Echo $Myvar -> ZoneNameByOffset(12); // Pacific/Auckland 


    طريقة اظهار اسم منظقة توقيت الزائر
    كود PHP:
    Echo $Myvar -> Localtimezone(); 


    الان نمر للدالة الاكتر روعة والتي تفتقرها Php والموجودة في Asp وهي DateAdd()
    وتقوم باضافة عدد معين من الايام او الشهور او الساعات او التواني او السنوات ... الى تاريخ محدد مثال
    كود PHP:
    Echo $Myvar -> DateAdd("d",23,"15-Jun-2010","d:m:y"); // 08:07:10 

    البرامتر الاول نضع القيمة التي نريد اضافة
    d : الايام
    m : الشهور
    y : السنوات
    h : الساعات
    ... الخ
    البرامتر التاني عدد x الدي نريد اضافة
    البرامتر التالت التاريخ المراد تعديله
    البرامتر الرابع صيغة المخرج

    والان دالة DateDiff() والتي تقوم بطرح تاريخ من اخر ويعكينا فارق الايام مع احتساب السنوات الكبيسة ...
    كود PHP:
    Echo $Myvar -> DateDiff("09-Jan-2011","03-Jan-2009")." Days"// 736 Days 

    سيكون الناتج 736 يوما

    هذا كل شيء والحمدلله
    اتمنى ان اكون قد وفقت في شرحي
    رابط الكلاس على موقع PhpClasses
    http://www.phpclasses.org/package/6561-PHP-Class-For-Full-Control-Of-The-Time-And-Date.html
    :1power:







  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    بارك الله فيك على مجهودك اخي

    لكن ال php فيها دوال وكلاسات كثيرة للتعامل مع الوقت

    فيها كل ما تحتاجه تقريبًا
    http://www.php.net/manual/en/book.datetime.php

    وهذه الدالة التي تضيف عدد محدد من الايام على التاريخ(لاحظ البارمتر الثاني)
    http://php.net/manual/en/function.strtotime.php






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jul 2008
    المشاركات
    269


    بارك الله فيك ورفع الله قدرك على المعلومات المفيدة ،،





    __________________
    اذا اردت فحص البيج رانك لعدة مواقع في لحظة واحدة يمكنك التواجه الى الرابط http://www.almzn.net/pagerank_alexa/
    مبــ PHP@MYSQLــــرمج ومـصـمم
    لطلب برمجة راسلنا على الإيميل fa.isl#hotmail.com مع استبدال # بـ@

  4. #4
    عضو جديد
    تاريخ التسجيل
    May 2010
    المشاركات
    8


    بارك الله فيك على مجهودك اخي

    لكن ال php فيها دوال وكلاسات كثيرة للتعامل مع الوقت

    فيها كل ما تحتاجه تقريبًا
    http://www.php.net/manual/en/book.datetime.php

    وهذه الدالة التي تضيف عدد محدد من الايام على التاريخ(لاحظ البارمتر الثاني)
    http://php.net/manual/en/function.strtotime.php
    اخي الغالي شكرا على المعلومات لكن لا يوجد دالة خاصة لتغير الوقت حسب الاوفسيت
    وايضا
    الدالة التانية ليس لها نفس المفعول






  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    اخي الغالي شكرا على المعلومات لكن لا يوجد دالة خاصة لتغير الوقت حسب الاوفسيت
    وايضا
    الدالة التانية ليس لها نفس المفعول

    هذا مثال على استعمال دالة الاضافة:
    كود PHP:
    $date mktime(0,0,0,10,10,2010);
    echo 
    date('Y-m-d  H : i : s ',strtotime("+1 year 2 days  1 minutes ",$date)); 

    بالنسبة للتعامل مع المناطق الزمنية فلها كلاس خاص في php5
    http://www.php.net/manual/en/class.datetimezone.php

    الكلاس الذي قمت ببرمجته ممتاز ايضًا للاصدارات السابقة من ال php
    ايضًا كلاسك سهل الاستعمال بعكس الكلاسات الكثيرة التي في ال php

    مشكور على تعبك






  6. #6
    عضو جديد
    تاريخ التسجيل
    May 2010
    المشاركات
    8


    شكرا على التوضيح اخي










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض