بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتة
قرأت كثيراً عن استخدام دالة time في لغة PHP ، ولكن لدي بعض الاستفسارات حول هذه الدالة ..
ابدأها بـ : كيف تعرض هذه الدالة الوقت ؟؟ هل على حسب توقيت السيرفر ؟ ولا حسب جرنتش ؟؟
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتة
قرأت كثيراً عن استخدام دالة time في لغة PHP ، ولكن لدي بعض الاستفسارات حول هذه الدالة ..
ابدأها بـ : كيف تعرض هذه الدالة الوقت ؟؟ هل على حسب توقيت السيرفر ؟ ولا حسب جرنتش ؟؟
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
هذه الدالة يا عبدالله تعرض الوقت حسب توقيت السيرفر، يمكنك الحصول على الوقت بتوقيت غرينيتش بواسطة دالة 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 ويحتوي على السنة
ولتقوم بالعملية العكسية، قم بالتالي:
على فرض أنك قمت باستخراج الوقت في متغير time$ وبصيغة Timestampكود PHP:
echo date('d-m-Y h:i:s', $time);
أخبرني إن كنت لا تفهم ما يحدث بالضبط
تحياتي،
مرحباً أخ اشرف ، نعم اعرف ان الدالة تقوم بحساب الثواني من 1970 حتى هذه اللحظة ..
وهل الدالة gmmktime تقوم بنفس دعمل دالة time ؟؟؟
يعني تقوم بنفس العمل ، فقط الاولى للسيرفر والثانية لجرنتش ؟؟
التعديل الأخير تم بواسطة عبد الله هُربي ; 13-02-2011 الساعة 07:06 PM
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
أخي أتمنى أن تخفف أسئلتك لاحقاً فأنت تسأل كثيراً!! << رح يطفش الأعضاء
شوف الآن عندنا 3 دوال للوقت:
time()
mktime()
gmmktime()
الأولى تقوم بإرجاع الوقت الحالي في السيرفر، فقط الوقت الحالي!
الثانية تقوم بتكوين صيغة Unix Timestamp لأي قيم من الأرقام كما في مثالي في ردي السابق وحسب توقيت السيرفر
الثالثة تقوم بتكوين صيغة Unix Timestamp كذلك لكن بحسابات تخص توقيت غرينيتش وحسب المعطيات المدخلة
الآن كي ألخّص لك الموضوع، ما تريده أنت هو حساب الوقت بالنسبة لمعطيات لديك، عندها ستستخدم mktime حسب مثالي السابق، أما بما يخص توقيت غرينيتش، فإذا أردت الحصول على الوقت الحالي بتوقيت غرينيتش فعليك بالكود التالي:
عمليات حساب الوقت فيها بعض التعفيد في PHP ، ليس تعقيداً فعلياً لكن يحتاج لبعض التركيز كي تصل للنتيجة التي تريدها.كود PHP:
echo gmmktime(gmdate('h'), gmdate('i'), gmdate('s'), gmdate('m'), gmdate('d'), gmdate('Y'));
تحياتي،
ههههههههههههههههههههه
طيب راخ اخفف الاسئلة >> امتحان .!
أشكرك على شرحك وعلى كل المعلومات الي ذكرتها استفدت كثيراً مما ذكرت ..
طيب الان ، ماذا لو كان لدينا 3 قوائم لادخال تاريخ الميلاد لأي شخص في قاعدة البيانات .!
علماً بأن قائمة اليوم اسمها :
birthday_day
وقائمة الشهر اسمها :
birthday_mon
وقائمة السنة اسمها :
birthday_yr
اقصد بالقوائم هو قائمة إختيار select في Html .!
السؤال كيف اجمع هالقوائم من النموذج وادخلها في خليه واحدة لقاعدة البيانات ؟؟
لانه هنا مفرقة في النموذج على شكل 3 قوائم ، بينما في قاعدة البيانات خليه واحدة .!
وأعتذر على كثرة الأسئلة ، لكن الي ما يسأل ما يتعلم .!
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
إذا أردت استخدام Unix Timestamp ، ستقوم بنفس المبدأ الذي ذكرته في ردي الأول، وهو:
طبعاً قمنا أولاً بتحويل جميع القيم إلى integers حتى نتفادى أية مشاكل تتعلق بإدخال قيم كتابية أو ما شابه ( في حالة التلاعب بالمدخلات ).كود PHP:
$birthday_day = intval($_POST['birthday_day']);
$birthday_mon = intval($_POST['birthday_mon']);
$birthday_yr = intval($_POST['birthday_yr']);
$time = mktime(0, 0, 0, $birthday_mon, $birthday_day, $birthday_year);
لاحظ الـ 3 أصفار الأولى، لأننا نستخدم تاريخ ولا يهمنا الوقت، قمنا بتحديد الوقت بـ 00:00:00 .
ثم قم إدخال time$ في حقل من نوع int في قاعدة البيانات
تحياتي،
ممتاز جداً ، ماذا لو اردت استخدام هذا الكود ولكن مع اضافة 3 ساعات على توقيت جرنتش ؟؟
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
انت هنا تتعامل مع تاريخ لا أعتقد أن غرينيتش أو غير غرينيتش سيؤثر كثيراً؟ لا أدري إذا كانت هناك أسباب معينة تريد تضمين حساب غرينيتش في هذا المثال لأجلها؟
نعم ، انا اتعامل مع توقيت جرنتش في الإدخال لقاعدة البيانات ، لكن لو اردت استخراج هذا التوقيت مع زيادة بعض الساعات على ان يكون كتوقيت السعودية مثلاً .!
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
كود PHP:
$data['birthday'] = date('Y-m-d', strtotime($birthday));
// ونوع الحقل date
$data['datejoin'] = date('Y-m-d H:i:s', strtotime($datejoin));
// ونوع الحقل يكون datetime
__________________
سوق الكويت