اخر المقالات

اضف اداة

الاثنين، 9 أبريل 2012

الدرس الرابع: التعامل مع الوقت والتاريخ

في هذا الدرس سنلقي نظرة على الخيارات المختلفة للتعامل مع الوقت والتاريخ في PHP، في الدرس السابق استعرضنا أمثلة بسيطة لنشرح ماهية اللغة، في هذا الدرس سنلقي نظرة على وظيفة توثيقdate .

وظائف الوقت والتاريخ

PHP تقدم مجموعة واسعة من الوظائف المتعلقة بالوقت والتاريخ، في هذا الدرس سنلقي نظرة على أهم هذه الوظائف: توثيقdate.
مع وجود الكثير من العوامل المختلفة يمكن لوظيفةتوثيقdate أن تعطي التاريخ الحالي أو الوقت بأشكال مختلفة، بعض أكثر العوامل المفيدة هي:
date("y")
يعطينا السنة الحالية، وبتاريخ اليوم فهو يعطينا: 12
date("m")
يعطينا الشهر الحالي، وبتاريخ اليوم فهو يعطينا: 04
date("F")
يعطينا اسم الشهر الحالي، وبتاريخ اليوم فهو يعطينا: April
date("d")
يعطينا اليوم الحالي في الشهر، وبتاريخ اليوم فهو يعطينا: 09
date("l")
يعطينا اسم اليوم، وبتاريخ اليوم فهو يعطينا: Monday
date("w")
يعطينا رقم اليوم في الأسبوع، وبتاريخ اليوم فهو يعطينا: 1
date("H")
يعطينا الساعة الحالية، وبالتوقيت الحالي فهو يعطينا: 13
date("i")
يعطينا الدقيقة الحالية، وبالتوقيت الحالي فهو يعطينا: 09
date("s")
يعطينا الثانية الحالية، وبالتوقيت الحالي فهو يعطينا: 12
هذا المثال يوضح استخدام وظيفة توثيقdate:
<html>
 <head>
 <title>Time and date</title>

 </head>
 <body>

 <?php 
 
 echo "<p>Today it's " . date("l") . "</p>";

 ?>
 
 </body>
 </html>
 
 

الوقت هو 1333969752

وظيفة توثيقtime() تعطينا الوقت الحالي كعدد من الثواني منذ الواحد من يناير 1970 وبالتحديد من الساعة 12 مساء بتوقيت غرينتش.
<html>
 <head>
 <title>time and date</title>
 </head>
 <body>

 <?php   

 echo "<p>It's been exactly " . time() . " seconds since January 1, 1970, 12:00 PM, GMT </ p> ";

 ?>

 </body>
 </html>
 
 
الوقت المعبر عنه بعدد الثواني منذ 1 يناير 1970 الساعة 12 مساء بتوقيت غرينتش يسمى "timestamp" أو الطابع الزمني ويسمى أيضاً الطابع الزمني ليونكس وهو مفيد عند التعامل مع التواريخ والأوقات في المستقبل أو الماضي.
تلقائياً وظيفةتوثيقdate تستخدم الطابع الزمني الحالي أي القيمة الحالية لوظيفة توثيقtime()، لكن من خلال عوامل إضافية يمكنك أن تحدد طابعاً زمنياً مختلفاً وهكذا يمكنك التعامل مع الماضي والمستقبل، في المثال أدناه حددنا الثانية صفر من تاريخ 1 يناير 1970 الساعة 12 مساء بتوقيت غرنيتش، هكذا يمكننا معرفة أي يوم كان هذا:
<html>
 <head>
 <title>time and date</title>
 </head>
 <body>

 <?php 
 
 echo "<p>January 1, 1970 was a " . date("l",0) . "</p>";

 ?>

 </body>
 </html>
 
 
يزداد تعقيد عد الثواني منذ 1 يناير 1970 إلى وقت محدد في المستقبل أو الماضي، إلا إن كنت عبقري رياضيات! لكن يمكنك لوظيفة مفيدة أن تساعدك: توثيقmktime، التي يمكنها أن تحسب عدد الثواني.
طريقة كتابة قيم توثيقmktime هي (ساعة، دقيقة، ثانية، شهر، يوم، عام)، المثال أدناه يحول الوقت لأول خطوة على القمر 21 يوليو 1969 في 02:56:
<html>
 <head>
 <title>time and date</title>
 </head>
 <body>

 <?php  
 
 echo mktime (2,56,0,7,21,1969);

 ?>

 </body>
 </html>
 
 
لاحظ أنه يعطينا رقماً سلبياً لأن التاريخ الذي طلبناه كان قبل 1 يناير 1970.
يمكننا أن نجمع بين هذه الوظيفة ووظيفة توثيقdate لنجد أي يوم وقع هذا الحدث التاريخي.
<html>
 <head>
 <title>time and date</title>
 </head>
 <body>

 <?php
 
 echo date("l", mktime(2,56,0,7,21,1969));
 
 ?>
 
 </body>
 </html>
 
 

كيف يمكنك استخدامها؟

كل ما سبق يبدو نظرياً حتى الآن، كيف يمكنك أن تستخدم وظيفة مثل توثيقtime()، الأهم من ذلك متى ستتعلم شيئاً يمكنك أن فعلاً أن تضيفه في صفحاتك؟
الإجابة هي أن ما تتعلمه هنا هي لبناء البناء الأساسية، الحد الوحيد لما يمكنك فعله بها هو إبداعك وخيالك! سأتجرأ لأقول بأنك تعلمت أكثر مما تظن، مثلاً هل تظن أنه بإمكانك إنشاء موقع يعرض خلفية للصفحة تتغير بحسب أيام الأسبوع ويعمل على كل المتصفحات؟
بالتأكيد يمكنك، ألقي نظرة على المثال:
<html>
 <head>
 <title>time and date</title>
 </head>

 <body background="background_<?php echo date("w"); ?>.png">

 </body>
 </html>
 
 
المثال أعلاه بصور متغيرة، ببساطة يتطلب منك أن تصنع 7 صور لخلفية الموقع وتسمي كل واحدة منها background_1.png وbackground_2.png وbackground_3.png ... إلخ.
إن زار مستخدم موقعك يوم الثلاثاء الموقع سيعرض صورة background_2.png كخلفية، في اليوم التالي سيعرض background_3.png، بسيط وسهل!
في الدرس التالي ستتعلم لبنات بناء جديدة يمكن استخدامها لصنع حلقات وتكراراً في برنامجك.
PHP ممتعة، أليس كذلك؟

0 التعليقات

إرسال تعليق

السلام عليكم ورحمة الله وبركاته ترحب مدونة lerentable بزوارها الكرام وتفسح المجال لتعليقاتهم بالنشر طالما هي تلتزم بالسلوكيات الصحيحة للإعلام الملتزم، ولا تخرج لحدود المساس القانوني بالاشخاص والجهات، وهي إذ تضمن النشر تشير إلى أن ما ينشر لا يعبر عن موقفها ورأيها بالضرورة
فلابد أن لديك ما تود كتابته.أرجوا منك أن تترك رأيك، انطباعك، استيائك، إعجابك، اقتراحك.ولا تهتم، قل ما يجول في عقلك حيال مدونتي والمواد المنشورة فيها ويسرني تقبل رأيك بصدر

قوالب بلوجر معربة واحترافية مجانية