المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الرابع: التعامل مع الوقت والتاريخ



المنصور بالله
30-04-2017, 04:11 PM
الدرس الرابع: التعامل مع الوقت والتاريخ

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

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

PHP تقدم مجموعة واسعة من الوظائف المتعلقة بالوقت والتاريخ، في هذا الدرس سنلقي نظرة على أهم هذه الوظائف: date.

مع وجود الكثير من العوامل المختلفة يمكن لوظيفةdate أن تعطي التاريخ الحالي أو الوقت بأشكال مختلفة، بعض أكثر العوامل المفيدة هي:

date("y")
يعطينا السنة الحالية، وبتاريخ اليوم فهو يعطينا: 17
date("m")
يعطينا الشهر الحالي، وبتاريخ اليوم فهو يعطينا: 04
date("F")
يعطينا اسم الشهر الحالي، وبتاريخ اليوم فهو يعطينا: April
date("d")
يعطينا اليوم الحالي في الشهر، وبتاريخ اليوم فهو يعطينا: 30
date("l")
يعطينا اسم اليوم، وبتاريخ اليوم فهو يعطينا: Sunday
date("w")
يعطينا رقم اليوم في الأسبوع، وبتاريخ اليوم فهو يعطينا: 0
date("H")
يعطينا الساعة الحالية، وبالتوقيت الحالي فهو يعطينا: 16
date("i")
يعطينا الدقيقة الحالية، وبالتوقيت الحالي فهو يعطينا: 05
date("s")
يعطينا الثانية الحالية، وبالتوقيت الحالي فهو يعطينا: 18
هذا المثال يوضح استخدام وظيفة date:


<html>
<head>
<title>Time and date</title>

</head>
<body>

<?php

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

?>

</body>
</html>


شاهد المثال
الوقت هو 1493568318

وظيفة 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 ممتعة، أليس كذلك؟

tafokt
03-05-2017, 10:21 PM
شكرا على لمعلومات والافادة

يسرا المرشدى
10-05-2017, 04:43 PM
شكرا على المعلومات والافادة

طلعت شكرى
23-05-2017, 11:33 PM
شكرا على الموضوع والافادات القيمة

غزوان المالكى
07-06-2017, 07:49 AM
شكرا على الموضوع والافادة والمعلومات القيمة

نجوى كريم
09-06-2017, 01:33 AM
شكرا على الموضوع والافادات القيمة

سوزان الشرقاوى
09-07-2017, 11:27 AM
شكرا على المعلومات والافادة

حوراء
11-07-2017, 03:22 AM
شكرا على الموضوعات المفيدة

خديجة العلوى
13-07-2017, 03:50 PM
شكرا على المعلومات والافادة

سلسبيل
14-07-2017, 09:54 PM
شكرا على الموضوع والمعلومات القيمة