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

الموضوع: طلبي له 4 ايام وعجزت أحله صح !!! كيف تحسب عدد الدقائق من ساعة إلى ساعة تقوم بتحديدهم

  1. #1

    طلبي له 4 ايام وعجزت أحله صح !!! كيف تحسب عدد الدقائق من ساعة إلى ساعة تقوم بتحديدهم



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

    أحبتي

    عندي قيم خاصة ومحددة بأوقات الصلاة

    اللي ابغاه انه راح يحسب عدد الدقائق من الوقت الآن حتى وقت الآذان القادم

    لكي أضربها في (عدد الثواني × 1000) وذلك لكي أضع القيمة في دالة الـ setTimeout الخاص بالجافا سكربت لتنفيذ function معين

    مثال على ذلك بشكل أبسط


    كود PHP:
    $fajr "4:00";
    $dhr "12:00";
    $asr "3:30";
    $mghrb "5:30";
    $esha "7:00";

    $mille_seconds = ($prayer date("g:i")) * 60 60 1000;

    echo 
    '<script type="text/javascript">
    function alert_prayer()
    {
        alert("حان الآن وقت صلاة ****");
    }
    setTimeout("alert_prayer()", ' 
    $mille_seconds ')
    </script>'

    حيث أن $prayer هو وقت الآذان القادم ويرجى ملاحظة تشابه الوقت بين صلاة العصر والفجر لذلك جرى التمييز بينهم عن طريق AM & PM لكن يبقى مشكلة صلاة الظهر حيث ان وقت الآذان متذبذبه بين AM & PM

    لذلك هناك خطأ وهي انه بعض المرات راح يحسب صلاة الظهر في منتصف الليل وذلك طبيعي حيث انه date("g:i"); هو المشكلة في عدم تحديد هل وقت صلاة الظهر داخل نطاق AM أم PM

    اتمنى حل المشكلة الوحيدة والتي ذكرتها بشكل أبسط من هذا في آخر رد لي على موضوع ألغاز برمجية .. لكن لم أر تواجد الأخ Flasher عسى ماشر

    اتمنى ان تكونوا قد فهمتم مقصدي جيداً
    وأنا سأكون بانتظاركم ياخبراء PHP

    لكم أجمل تحياتي واحترامي ملؤها عطر شكري الفواح ..
    من محبكم





    __________________
    تابعني على Twitter


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


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

    يمكنك استخدام الدالة strtotime() وتحويل الوقت إلى رقم unixstamp حيث يمكن إجراء العمليات الحسابية عليها على عكس الصيغةXX:XX التي لا يمكن إجراء العمليات الحسابية على مباشرة..

    التعديل...
    كود PHP:
    <?
    $fajr 
    "4:00"
    $dhr "12:00"
    $asr "3:30"
    $mghrb "5:30"
    $esha "7:00"

    $mille_seconds = (strtotime($prayer) - mktime(time(),time(),0,0,0,0)) * 60 60 1000

    echo 
    '<script type="text/javascript"> 
    function alert_prayer() 

        alert("حان الآن وقت صلاة ****"); 

    setTimeout("alert_prayer()", ' 
    $mille_seconds ') 
    </script>'
    ;
    ?>
    أرجو أن يكون الحل واضح

    تحياتي






  3. #3


    امر جميل

    طيب لدي سؤال

    لدينا الآن أوقات الصلاة بنظام 12 ساعه

    أستطيع الآن أن اقوم بتحويل أوقات الصلاة إلى نظام الـ 24 ساعة

    وذلك بإضافة 12 إلى اوقات صلاة العصر والمغرب والعشاء فقط

    اما الفجر والظهر فهي ثابتان سواء كانت بنظام الـ 12 ساعة أو الـ 24 ساعة

    لكن المشكلة الآن أنني أريد دالة يقوم بتحويل الوقت الذي بنظام الـ 24 ساعة إلى صيغة unixstamp

    لكني أخشى أن يأخذ وقت صلاة الفجر والظهر على انه نظام الـ 12 ساعة

    كيف أعرّف دالة strtotime على أن نظام الوقت الذي اقوم بتحويله إلى unixstamp هو نظام 24 ساعة !!





    __________________
    تابعني على Twitter

  4. #4


    ولارد !! :looking:





    __________________
    تابعني على Twitter

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    أنا قمت بعمل برنامج مشابه لما تريد ..
    قمت بعمل برنامج تدخل فيه أوقات الصلوات ( على نظام 24 ساعة ) ويعطيك الوقت المتبقي على الصلاة القادمة بالدقائق ..
    وقمت بعمل تحديث للصفحة كل 60 ثانية أي ادقيقة واحدة .. حتى يكون مثل الساعة :app:

    هذا هو الكود ..
    كود PHP:
    <html>
    <head>
    <title>.:: برنامج إلا صلاتي ::.</title>
    <meta http-equiv="Refresh" content="60; URL=index.php" />
    </head>
    </html>
    <?php

            
    /////////////////\\\\\\\\\\\\\\\\
           //// تم برمجة هذا البرنامج من قبل المبرمج عبد الرحمن العصفور \\\\
          ////    q8istud@hotmail.com     \\\\
         ////          الرجاء عدم حذف الحقوق         \\\\
        /////////////////////\\\\\\\\\\\\\\\\\\

    ////////////////////////// تعليمات \\\\\\\\\\\\\\\\\\\\\\
    // غير اسم وصلة التحديث إلى اسم الصفحة الحالية .. العنوان الافتراضي للصفحة الحالية هو index.php
    // غير أوقات الصلوات .. أو استخرجها من قاعدة بياناتك
    /////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\

    $sta_time1    date("G:i");        // in 24 hours as 00:00  *For This Time :$sta_time = date("G:i");
    $end_time[0] = $fajr  "04:00";    // in 24 hours as 00:00
    $end_time[1] = $dhr   "12:00";    // in 24 hours as 00:00
    $end_time[2] = $asr   "15:30";    // in 24 hours as 00:00
    $end_time[3] = $mghrb "17:30";    // in 24 hours as 00:00
    $end_time[4] = $esha  "19:00";    // in 24 hours as 00:00

    $sta_time explode(":"$sta_time1);
    $sta_sec  = ($sta_time[0]*60)+$sta_time[1];    //08


    $end_time[0] = explode(":"$end_time[0]);
     
    $end_sec[0] = ($end_time[0][0]*60)+$end_time[0][1];    //06
    $end_time[1] = explode(":"$end_time[1]);
     
    $end_sec[1] = ($end_time[1][0]*60)+$end_time[1][1];    //06
    $end_time[2] = explode(":"$end_time[2]);
     
    $end_sec[2] = ($end_time[2][0]*60)+$end_time[2][1];    //06
    $end_time[3] = explode(":"$end_time[3]);
     
    $end_sec[3] = ($end_time[3][0]*60)+$end_time[3][1];    //06
    $end_time[4] = explode(":"$end_time[4]);
     
    $end_sec[4] = ($end_time[4][0]*60)+$end_time[4][1];    //06



    for($i=0$i<=10$i++)
        {
        if(
    $end_sec[$i] > $sta_sec)
            {
            switch (
    $i)
                {
                case 
    0:
                
    $time "صلاة الفجر";
                break;

                case 
    1:
                
    $time "صلاة الظهر";
                break;

                case 
    2:
                
    $time "صلاة العصر";
                break;

                case 
    3:
                
    $time "صلاة الغرب";
                break;

                case 
    4:
                
    $time "صلاة العشاء";
                break;
                }


            
    $between_sec $end_sec[$i] - $sta_sec;
            if(
    $between_sec == 1)
                {
                
    $between_sec "دقيقة واحدة";
                }
            elseif(
    $between_sec == 2)
                {
                
    $between_sec "دقيقتان";
                }
            elseif(
    $between_sec && $between_sec 10)
                {
                
    $sec "دقائق";
                }
            elseif(
    $between_sec 10)
                {
                
    $sec "دقيقة";
                }
            
            echo 
    "الساعة الآن $sta_time1 وقد بقي على $time $between_sec $sec";
            exit;
            }
        else
            {
            }
        }
    ?>






    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    اخي اذا كان الوقت لديك بنظام 12 ساعة فيجب تعليم الوقت بـ AM لما قبل 12 ظهرا و PM للاوقات بعد 12 ظهرا

    اما اذا كنت ستستخدم نظام الـ 24 ساعة فالامر سيكون ابسط حيث لن تحتاج إلى اي تعديل فقط ضع الوقت على شكل
    hh:mm

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

    بعد ان تقوم بتعديل طريقة كتابة الوقت بما يناسبك يمكنك استخدام الكود التالي:
    كود PHP:
    <?
    // config
    $prayer = array();
    $prayer['1'] = "4:00 am";// fajr
    $prayer['2'] = "12:00 pm";// dhr
    $prayer['3'] = "3:00 pm";// asr
    $prayer['4'] = "5:30 pm";// mghrb
    $prayer['5'] = "7:00 pm";// esha

     // -------------------------------------------------------
    $time time();
    $plustime 0;
    $dayis date('l dS F Y'$time);
    $prayertitle = array();
    $prayertitle['1'] = "الفجر";// fajr
    $prayertitle['2'] = "الظهر";// dhr
    $prayertitle['3'] = "العصر";// asr
    $prayertitle['4'] = "المغرب";// mghrb
    $prayertitle['5'] = "العشاء";// esha

    if($time strtotime("$dayis ".$prayer['5'] ))
    {
        
    $plustime 86400;
    }

    $i 1;
    while(  (
    $nexttime strtotime("$dayis ".$prayer[$i]) + $plustime) < $time )
    {
        
    $i++;
    }

    $nextprayertitle $prayertitle[$i];

    $nextprayertime $nexttime $time;

    $mille_seconds $nextprayertime 1000;

    echo 
    '<script type="text/javascript">
    function alert_prayer()
    {
        alert("حان الآن وقت صلاة '
    .$nextprayertitle.'");
    }
    setTimeout("alert_prayer()", ' 
    $mille_seconds ')
    </script>'


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

    الحل يكون بتعديل السطر التالي بزيادة او انقاص الوقت الذي يفصل بين وقت السيرفر ووقت الدولة المستهدفة باعلان الصلاة (الوقت بالثواني طبعا)
    كود PHP:
    $time time(); 

    تقبل مني ارق تحية





    التعديل الأخير تم بواسطة القائد ; 26-08-2007 الساعة 07:46 PM سبب آخر: اصلاح خطأ بالكود البرمجي
    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com





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

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