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

الموضوع: إستفسار حول التعامل الوقت في PHP

  1. #1
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000

    إستفسار حول التعامل الوقت في PHP



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

    قرأت كثيراً عن استخدام دالة time في لغة PHP ، ولكن لدي بعض الاستفسارات حول هذه الدالة ..

    ابدأها بـ : كيف تعرض هذه الدالة الوقت ؟؟ هل على حسب توقيت السيرفر ؟ ولا حسب جرنتش ؟؟





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


  2. #2
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    هذه الدالة يا عبدالله تعرض الوقت حسب توقيت السيرفر، يمكنك الحصول على الوقت بتوقيت غرينيتش بواسطة دالة gmmktime ، ستعتمد الدالة على إعدادات السيرفر المخصصة لتوقيت غرينيتش كذلك ( يعني فارق الساعات بين السيرفر وتوقيت غرينيتش حسب ما هو معدّ في السيرفر ).
    http://www.php.net/manual/en/function.gmmktime.php

    Unix Timestamp بالمناسبة هو الوقت بالثواني منذ 1-1-1970 وحتى اللحظة التي تطلب الوقت عندها.

    إذا كان لديك تاريخ أو وقت بالأرقام وتريد تحويله إلى Unix Timestamp ، الكود التالي قد يساعدك على فهم العملية:
    كود PHP:
    $time mktime($hour$minute$second$month$day$year); 
    على فرض أنك تملك المتغيرات التالية:
    hour ويحتوي على الساعة
    minute ويحتوي على الدقيقة
    second ويحتوي على الثانية
    month ويحتوي على الشهر
    day ويحتوي على اليوم
    year ويحتوي على السنة

    ولتقوم بالعملية العكسية، قم بالتالي:
    كود PHP:
    echo date('d-m-Y h:i:s'$time); 
    على فرض أنك قمت باستخراج الوقت في متغير time$ وبصيغة Timestamp

    أخبرني إن كنت لا تفهم ما يحدث بالضبط

    تحياتي،





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  3. #3
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    مرحباً أخ اشرف ، نعم اعرف ان الدالة تقوم بحساب الثواني من 1970 حتى هذه اللحظة ..

    وهل الدالة gmmktime تقوم بنفس دعمل دالة time ؟؟؟

    يعني تقوم بنفس العمل ، فقط الاولى للسيرفر والثانية لجرنتش ؟؟





    التعديل الأخير تم بواسطة عبد الله هُربي ; 13-02-2011 الساعة 07:06 PM
    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  4. #4
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    أخي أتمنى أن تخفف أسئلتك لاحقاً فأنت تسأل كثيراً!! << رح يطفش الأعضاء

    شوف الآن عندنا 3 دوال للوقت:
    time()
    mktime()
    gmmktime()

    الأولى تقوم بإرجاع الوقت الحالي في السيرفر، فقط الوقت الحالي!

    الثانية تقوم بتكوين صيغة Unix Timestamp لأي قيم من الأرقام كما في مثالي في ردي السابق وحسب توقيت السيرفر

    الثالثة تقوم بتكوين صيغة Unix Timestamp كذلك لكن بحسابات تخص توقيت غرينيتش وحسب المعطيات المدخلة

    الآن كي ألخّص لك الموضوع، ما تريده أنت هو حساب الوقت بالنسبة لمعطيات لديك، عندها ستستخدم mktime حسب مثالي السابق، أما بما يخص توقيت غرينيتش، فإذا أردت الحصول على الوقت الحالي بتوقيت غرينيتش فعليك بالكود التالي:
    كود PHP:
    echo gmmktime(gmdate('h'), gmdate('i'), gmdate('s'), gmdate('m'), gmdate('d'), gmdate('Y')); 
    عمليات حساب الوقت فيها بعض التعفيد في PHP ، ليس تعقيداً فعلياً لكن يحتاج لبعض التركيز كي تصل للنتيجة التي تريدها.

    تحياتي،





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  5. #5
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    ههههههههههههههههههههه

    طيب راخ اخفف الاسئلة >> امتحان .!

    أشكرك على شرحك وعلى كل المعلومات الي ذكرتها استفدت كثيراً مما ذكرت ..

    طيب الان ، ماذا لو كان لدينا 3 قوائم لادخال تاريخ الميلاد لأي شخص في قاعدة البيانات .!

    علماً بأن قائمة اليوم اسمها :
    birthday_day

    وقائمة الشهر اسمها :
    birthday_mon

    وقائمة السنة اسمها :
    birthday_yr

    اقصد بالقوائم هو قائمة إختيار select في Html .!

    السؤال كيف اجمع هالقوائم من النموذج وادخلها في خليه واحدة لقاعدة البيانات ؟؟

    لانه هنا مفرقة في النموذج على شكل 3 قوائم ، بينما في قاعدة البيانات خليه واحدة .!

    وأعتذر على كثرة الأسئلة ، لكن الي ما يسأل ما يتعلم .!





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

  6. #6
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    إذا أردت استخدام Unix Timestamp ، ستقوم بنفس المبدأ الذي ذكرته في ردي الأول، وهو:
    كود PHP:
    $birthday_day intval($_POST['birthday_day']);
    $birthday_mon intval($_POST['birthday_mon']);
    $birthday_yr intval($_POST['birthday_yr']);
    $time mktime(000$birthday_mon$birthday_day$birthday_year); 
    طبعاً قمنا أولاً بتحويل جميع القيم إلى integers حتى نتفادى أية مشاكل تتعلق بإدخال قيم كتابية أو ما شابه ( في حالة التلاعب بالمدخلات ).

    لاحظ الـ 3 أصفار الأولى، لأننا نستخدم تاريخ ولا يهمنا الوقت، قمنا بتحديد الوقت بـ 00:00:00 .

    ثم قم إدخال time$ في حقل من نوع int في قاعدة البيانات

    تحياتي،





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  7. #7
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    ممتاز جداً ، ماذا لو اردت استخدام هذا الكود ولكن مع اضافة 3 ساعات على توقيت جرنتش ؟؟





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

  8. #8
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    انت هنا تتعامل مع تاريخ لا أعتقد أن غرينيتش أو غير غرينيتش سيؤثر كثيراً؟ لا أدري إذا كانت هناك أسباب معينة تريد تضمين حساب غرينيتش في هذا المثال لأجلها؟





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  9. #9
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    انت هنا تتعامل مع تاريخ لا أعتقد أن غرينيتش أو غير غرينيتش سيؤثر كثيراً؟ لا أدري إذا كانت هناك أسباب معينة تريد تضمين حساب غرينيتش في هذا المثال لأجلها؟
    نعم ، انا اتعامل مع توقيت جرنتش في الإدخال لقاعدة البيانات ، لكن لو اردت استخراج هذا التوقيت مع زيادة بعض الساعات على ان يكون كتوقيت السعودية مثلاً .!





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

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


    كود PHP:
    $data['birthday'] = date('Y-m-d'strtotime($birthday));
    // ونوع الحقل date
    $data['datejoin'] = date('Y-m-d H:i:s'strtotime($datejoin));

    // ونوع الحقل يكون datetime 






    __________________
    سوق الكويت





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

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

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