بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته ,,
فى هذا الموضوع سنتعرف إن شاء الله على الفكرة العامة للتعامل مع الوقت والتاريخ فى PHP وبعض الدوال المستخدمة لهذا الغرض ..
فى البداية مربط الفرس فى هذا الموضوع هو ال time stamp , فلنبدأ
اولا ماهو ال time stamp ببساطة هو عدد الثوانى المنقضية من يوم 1 / 1 / 1970 وهذا يعنى انه رقم صحيح (11619599369 هذا هو عدد الثوانى وقت كتابة الموضوع )
ولكن لماذا؟ لماذا يتم تخزين التاريخ فى صورة رقم؟ لم لا يكون فى صورة نصية عادية 27-10-2006 مثلا.
الجواب لانه رقم !!! نعم كونه رقم يعطى مرونة هائلة فى التعامل , فمثلا يمكن نقله بين لغات البرمجة المختلفة وانظمة التشغيل المختلفة دون اى تخوف , وايضا هذا الرقم يتيح تحديد الوقت والتاريخ بدقة عالية لانه يحتوى على عدد ثوانى, وايضا كونه رقم هذا يعنى انه يخضع للعمليات الحسابية العادية بمعنى انه يمكننى اضافة ساعة الى التاريخ الحالى فقط بجمع 3600 او يوم بجمع 86400 وهكذا.
السؤال الان كيف يمكننا التعامل مع هذا الرقم (time stamp) فى PHP واستخلاص الوقت والتاريخ.
اولا الدالة time والتى تستخدم للحصول على ال time stamp للوقت الحالى.
كود PHP:
<?php
$now = time();
?>
بعض حصولنا على ال time stamp هناك دالتين من خلالها يمكن تحويله الى تاريخ مقروء (27 - 10 - 2006 الساعة 8 م) مثلا
الدالة date : تستقبل معاملان الاول هو نص يحدد (يصف شكل) التاريخ المراد والثانى هو ال time stamp.
بالنسبة للمعامل الاول وهو الخاص بتشكيل التاريخ فمن خلال بعض الرموز يمكنك تحديد الصورة النهائية للتاريخ فمثلا حرف d يعنى رقم اليوم فى الشهر (27) مثلا , g يعنى الساعة (8) مثلا وهكذا , لا تقلق فبالمثال يتضح المقال
كود PHP:
<?php
$wakt = time() + 3600; // بعد ساعة من الان
/*--- لطباعة التاريخ على هذه الصورة ---*/
// 27/10/2006
echo date('d/m/Y',$wakt);
/*--- لطباعة الوقت على هذه الصورة ---*/
// 8:33 pm
echo date('h:i a',$wakt);
/*--- لطباعة الوقت والتاريخ على هذه الصورة ---*/
// 27/10/06 - 20:33
echo date('d/m/y - H:i',$wakt);
?>
كما ترى باستخدام بعض الرموز يمكنك تحديد الصورة النهائية للعرض, ايضا كما يتضح يمكن دمج بعض الكلمات او الحروف مع هذه الرموز كدمج (/) و (-) والتى تظهر كما هى فى العرض.
هذا الجدول يحتوى على قائمة بكافة الرموز المستخدمة مع هذه الدالة
الدالة الثانية هى getdate وتستقبل معامل واحد هو ال time stamp وتعيد مصفوفة associative array بها تفاصيل الوقت والتاريخ
ايضا هذا الجدول به قائمة بالعناصر المستخدمة مع المصفوفة والتى ذكرنا ثلاثة منهاكود PHP:
<?php
$now = time();
$dateInfo = getdate($now);
echo dateInfo['year']; //2006
echo dateInfo['hours']; // 8
echo dateInfo['minutes']; // 45
?>
معلومة جانبية: المعامل الخاص بال time stamp فى هذه الدوال اختيارى بمعنى انه يمكنك اهماله وفى هذه الحالة ستتعامل الدوال مع ال time stamp الحالى تلقائيا
ارجو ان اكون وفقت فى شرح هذا الدرس وإن شاء الله الموضوع القادم سيكون عن كيفية جعل برنامجك يتعامل مع اكثر من توقيت دولى (كما فى المنتدى بمجرد تحديد بلدك يتم ضبط تواريخ المواضيع والردود وفق لبلدك)