صفحة 2 من 2 الأولىالأولى 12
النتائج 16 إلى 18 من 18

الموضوع: تحويل التاريخ الرقمي الى نص

  1. #16


    ما فائدة

    case ($seconds < 7200) : // $hour * 2
    $text = '1 hour';
    break;

    و

    case ($seconds < 172800) : // $day * 2
    $text = '1 day';
    break;

    إلخ

    فالراوند ستجلب الرقم 1 أصلاً

    أيضا لتحسين الأداء
    بدلاً من $minute = 60; وغيرها من المتخيرات
    مادامت هذه ثوابت وليست متغيرات ستقبل قيم أخري أستخدم define

    لدي مقترحات أخري لتحسينها كونها ستستخدم بكثرة ولكن خلينا واحدة واحدة ( سيتم المرور عليها 20 مرة مثلا في صفحة عرض الموضوعات )
    وبالتالي ديفاين أفضل لتثبيت قيمتها في الرام بدلاً من تحميلها في كل مرة ( أجزاء من الثانية ولكننا نبحث عن الأفضل )





    __________________
    السيف أصدق أنباء من الكتب

  2. #17
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    لا يمكننا أن نكتب ..
    كود PHP:
    1 days
    1 months 
    بل ..
    كود PHP:
    1 day
    1 month 
    بالنسبة لـ define فالفكرة جيدة وقمت بتطبيقها لدي، أرجو منك وضع جميع الملاحظات حتى نضع نسخة نهائية بدلاً من تكرار المشاركات .. جزيل الشكر والتقدير لشخصك الكريم ..





    __________________
    مدونة؟

  3. #18
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    يبدو أنه لاتوجد ملاحظات أخرى .. هنا النسخة الاخيرة من الدالة .. شكراً للجميع ، والباب لايزال مفتوح للمزيد ..
    كود PHP:
    function unix_time2text($unix_time$time null) {
        if (
    is_int($unix_time) == false) {
            return 
    null;
        }
        
        if (
    $time == null) {
            
    $time time();
        } else {
            if (
    is_int($time) == false) {
                return 
    null;
            }
        }

        
    // $time must be bigger than $unix_time..
        
    if ($time $unix_time) {
            return 
    null;
        }

        
    $seconds $time $unix_time;

        
    // by seconds..
        
    define('MINUTE'60);
        
    define('HOUR'3600); // $minute * 60
        
    define('DAY'86400); // $hour * 24
        
    define('WEEK'604800); // $day * 7

        // for the current month..
        
    define('MONTH', (DAY date('t'$time)));

        
    define('YEAR', ((date('L'$time) == 1) ? 31622400 31536000));
        
    // 1 : ($day * 29) + ((4 * ($day * 30)) + (7 * ($day * 31)))
        // 0 : ($day * 28) + ((4 * ($day * 30)) + (7 * ($day * 31)))

        
    switch (true) {
            
    // seconds
            
    case ($seconds == 0) :
                
    $text 'this second';
                break;
            case (
    $seconds == 1) :
                
    $text '1 second';
                break;
            case (
    $seconds MINUTE) :
                
    $text $seconds.' seconds';
                break;
            
    // minutes
            
    case ($seconds 120) : // $minute * 2
                
    $text '1 minute';
                break;
            case (
    $seconds HOUR) :
                
    $text round($seconds MINUTE).' minutes';
                break;
            
    // hours
            
    case ($seconds 7200) : // $hour * 2
                
    $text '1 hour';
                break;
            case (
    $seconds DAY) :
                
    $text round($seconds HOUR).' hours';
                break;
            
    // days
            
    case ($seconds 172800) : // $day * 2
                
    $text '1 day';
                break;
            case (
    $seconds WEEK) :
                
    $text round($seconds DAY).' days';
                break;
            
    // weeks
            
    case ($seconds 1209600) : // $week * 2
                
    $text '1 week';
                break;
            case (
    $seconds MONTH) :
                
    $text round($seconds WEEK).' weeks';
                break;
            
    // months
            
    case ($seconds < (MONTH 2)) :
                
    $text '1 month';
                break;
            case (
    $seconds YEAR) :
                
    $text round($seconds MONTH).' months';
                break;
            
    // years
            
    case ($seconds < (YEAR 2)) :
                
    $text '1 year';
                break;
            default :
                
    $text round($seconds YEAR).' years';
                break;
        }

        return 
    $text;

    وهنا مجموعة من التجارب ..
    كود PHP:
    date_default_timezone_set('asia/riyadh');

    function 
    u2t($unix_time) {
        
    $result unix_time2text($unix_time);
        if (
    $result == null) {
            echo 
    "null..\n";
        } else {
            echo 
    '['.date('d-m-Y h:i:s a'$unix_time).'] '.$result.(($result == 'this second') ? '' ' ago')."..\n";
        }
    }

    function 
    u2te($unix_time$time) {
        
    $result unix_time2text($unix_time$time);
        if (
    $result == null) {
            echo 
    "null..\n";
        } else {
            echo 
    '[from ['.date('d-m-Y h:i:s a'$unix_time).'] to ['.date('d-m-Y h:i:s a'$time).']] '.(($result == 'this second') ? '0 seconds' $result)."..\n";
        }
    }

    echo 
    '<pre>';

    // seconds
    u2t(time());
    u2t(time() - 01);
    u2t(time() - 30);
    u2t(time() - 59);

    echo 
    "\n";

    // minutes
    u2t(time() - 60);
    u2t(time() - (60 30));
    u2t(time() - (60 59));

    echo 
    "\n";

    // hours
    u2t(time() - (60 60));
    u2t(time() - (60 60 12));
    u2t(time() - (60 60 23));

    echo 
    "\n";

    // days
    u2t(time() - (60 60 24));
    u2t(time() - (60 60 24 2));
    u2t(time() - (60 60 24 6));

    echo 
    "\n";

    // weeks
    u2t(time() - (60 60 24 7));
    u2t(time() - (60 60 24 2));
    u2t(time() - (60 60 24 3));
    u2t(time() - (60 60 24 4));

    echo 
    "\n";

    // months
    u2t(time() - (60 60 24 date('t')));
    u2t(time() - (60 60 24 date('t') * 02));
    u2t(time() - (60 60 24 date('t') * 06));
    u2t(time() - (60 60 24 date('t') * 11));

    echo 
    "\n";

    // years
    u2t(time() - (60 60 24 date('t') * 12));
    u2t(time() - (60 60 24 date('t') * 12 02));
    u2t(time() - (60 60 24 date('t') * 12 05));
    u2t(time() - (60 60 24 date('t') * 12 10));

    echo 
    "\n\n";

    // extra parameter.. (first_parameter < second_parameter)
    u2te(mktime(000112004), mktime(000112004));
    u2te(mktime(101040771990), mktime(101060771990));
    u2te(mktime(101040771993), mktime(101260771993));
    u2te(mktime(101040772005), mktime(1410607212005));
    u2te(mktime(101040772002), mktime(141060772002));
    u2te(mktime(000772007), mktime(0001262007));
    u2te(mktime(000112003), mktime(000332006));

    echo 
    '</pre>'






    __________________
    مدونة؟





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

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

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