التعامل مع الوقت و التاريخ في php
الوقت والتاريخ في php, اليوم سنتحدث عن الوقت و التاريخ date and time في PHP, عند بنائك لموقع معين يجب أن يتحدث refresh التاريخ و الوقت كل يوم ومن خلال php يمكنك فعل ذلك.
لغة php تقدم مجموعة كبيرة من الوظائف المتعلقة بالوقت و التاريخ date and time و اهم هذه الوظائف هي "date".
الدالة date() في لغة php
الدالة date() تحول الزمن إلى تاريخ و وقت أكثر قابلية للفهم والقراءة.
يخزّن جهاز الكمبيوتر التاريخ والوقت بتنسيق يسمى UNIX Timestamp الذي يقيس الوقت بعدد الثواني منذ بداية عهد UNIX.
أي منتصف الليل بتوقيت غرينتش 1 كانون الثاني من عام 1970 يعني 1 يناير 1970 والساعة 00:00:00 بتوقيت جرينتش.
وهو عبارة عن سلسلة أرقام تٌمثّل عدد الثواني من ذاك الحين.
ونظراً لأن التنسيق هذا غير عملي للقراءة من قِبل الأشخاص العاديين (البشر) فيحول PHP هذا الزمن إلى تنسيق قابل للقراءة عندهم والعكس بالعكس.
تواريخ بالصيغة البشرية إلى طابع زمني يفهمه الكمبيوتر.
الصيغة العامة لجملة الدالة date() بالصيغة التالية:
date(format, timestamp)
معنى format في الدالة date() تنسيق التاريخ والوقت المحددين.
و timestamp فهي إختيارية فسوف يتم إستخدام التاريخ والوقت الحاليين.
مثال
قم بعرض تاريخ اليوم
<?php
$today = date ("d/m/Y");
echo $today;
?>
عند تشغيل هذا الكود سوف يعطيني تاريخ الحالي الذي اكتب به هذا الدرس بالشكل
02/11/2021
الوظائف التي تستخدم مع date في php
مع وجود الكثير من العوامل المختلفة يمكن لوظيفة date أن تغطي التاريخ الحالي او الوقت بأشكال مختلفة دعونا نتعرف على اكثر العوامل المفيدة وهي :
| الوظيفة | معناها |
| ("date("y | السنة الحالية وتاريخ اليوم |
| ("date("m | الشهر الحالي وتاريخ اليوم |
| ("date("F | اسم الشهر الحالي وتاريخ اليوم |
| ("date("d | اليوم الحالي في الشهر و تاريخ اليوم |
| ("date("l | اسم اليوم وتاريخ اليوم |
| ("date("w | رقم اليوم في الإسبوع وتاريخ اليوم |
| ("date("H | الساعة الحالية بالتوقيت الحالي |
| ("date("i | الدقيقة الحالية يتوقيت الحالي |
| ("date("s | الثانية الحالية بالتوقيت الحالي |
مثال يجمع كل ما سبق
<?php
echo date("y") . '<br>';
echo date("m") . '<br>';
echo date("F") . '<br>';
echo date("d") . '<br>';
echo date("l") . '<br>';
echo date("w") . '<br>';
echo date("H") . '<br>';
echo date("i") . '<br>';
echo date("s") . '<br>';
?>
عند تشغيل الكود السابق في السيرفر سوف نحصل على النتيجة
يمكن فصل أجزاء التاريخ بإدخال أحرف أخرى مثل (-) والنقاط (.) ومائلة (/) أو مسافات, لإضافة تنسيق مقروء إضافي من قبل البشر كما بالكود الآتي.
<?php
echo date ("d/m/Y") . "<br>";
echo date ("d-m-Y") . "<br>";
echo date ("d.m.Y");
?>
عند التشغيل سوف نحصل على النتيجة
02/11/2021
02-11-2021
02.11.2021
الدالة time() في لغة بي إتش بي php
يتم إستخدام الدالة time() من أجل الحصول على الوقت الحالي كطابع زمني ليونكس (وهو عدد الثواني منذ بداية الفترة 1/1/1970 00:00:00).
<?php
$kaissar = time();
echo ($kaissar);
?>
عند تشغيل الكود, سوف يعطيك ناتج رقمي مختلف بحسب وقت تنفيذك للكود
1635846958
يمكننا تحويل هذا الطابع الزمني إلى تاريخ قابل للقراءة, من خلال تمريره إلى الوظيفة date() السابقة.
<?php
$kaissar = 1635846958;
echo (date ("F d, Y h:i:s", $kaissar));
?>
وعندما نقوم بتشغيل هذا الكود سوف تكون نتيجته هي
November 02, 2021 09:55:58
الدالة mktime() في لغة php
يتم إستخدام mktime() لأجل إنشاء الطابع الزمني بناءً على تاريخ ووقت محدد.
إذا لم يتم تزويد التاريخ والوقت, فسوف يتم إرجاع الطابع الزمني للتاريخ و الوقت الحاليين لديك.
الشكل العام للدالة mktime()
mktime(hour, minute, second, month, day, year)
يمكن إستخدام الدالة mktime() مثلاً لمعرفة إسم يوم في الأسبوع المطابق لتاريخ معين.
كل ما عليك سوى إستخدام الحرف "l" الصغير من "L" مع الطابع الزمني الخاص بك, كما هو موضح في المثال التالي.
المثال يعرض اليوم الذي يبدأ في 1 نوفمبر 2022.
<?php
echo date('l', mktime(0,0,0,11,2,2022));
?>
في الكود السابق سوف يعطينا إسم اليوم في تاريخ 02/11/2022 وعند تشغيل الكود سيكون بالشكل.
Wednesday
طبع لنا أن اليوم في التاريخ المحدد هو الأربعاء.
يمكن إستخدام mktime() لمعرفة تاريخ معين في المستقبل بعد فترة محددة.
<?php
$futuer = mktime(0,0,0,date("m")+16,date("d"),date("Y"));
echo date('d/m/Y', $futuer);
?>
سوف يكون الناتج بهذا الكود
02/03/2023
هذا يعني أن بعد 16 شهراً من هذا اللحظة الذي اكتب الدرس بها سوف يكون التاريخ 02/03/2023.

