PHP Date() ووظيفة الوقت: كيفية الحصول على الطابع الزمني الحالي؟
⚡ ملخص ذكي
تقوم دالة التاريخ () في لغة PHP بتنسيق الطوابع الزمنية إلى تواريخ وأوقات قابلة للقراءة. يشرح هذا الدليل صيغة التاريخ، والطابع الزمني في نظام يونكس، وكيفية عرض وتعيين المناطق الزمنية، ودالة mktime لإنشاء الطوابع الزمنية، بالإضافة إلى مرجع شامل لأحرف تنسيق الوقت واليوم والشهر والسنة.

تاريخ PHP () الوظيفة
دالة التاريخ في PHP هي دالة مدمجة تُسهّل التعامل مع أنواع بيانات التاريخ. تُستخدم هذه الدالة لتنسيق التاريخ أو الوقت إلى صيغة سهلة القراءة. يمكن استخدامها لعرض تاريخ نشر مقال أو لتسجيل آخر تحديث للبيانات في قاعدة البيانات.
PHP بناء جملة التاريخ والمثال
تحتوي دالة التاريخ (date()) في لغة PHP على الصيغة الأساسية التالية.
<?php date(format,[timestamp]); ?>
هنا،
- الدالة "date(…)" هي الدالة التي تُرجع الطابع الزمني الحالي بتنسيق PHP على الملقم.
- "التنسيق" هو التنسيق العام الذي نريد أن يكون عليه الناتج، على سبيل المثال:
- "Ymd" هو اختصار لتنسيق التاريخ في PHP YYYY-MM-DD
- "Y" لعرض العام الحالي
- يُعدّ حقل "[الطابع الزمني]" اختياريًا. في حال عدم تحديد طابع زمني، سيستخدم PHP التاريخ والوقت الحاليين على الخادم.
دعونا نلقي نظرة على مثال أساسي يعرض السنة الحالية.
<?php echo date("Y"); ?>
الإخراج:
2026
ما هو الطابع الزمني؟
الطابع الزمني في لغة PHP هو قيمة رقمية بالثواني بين الوقت الحالي والقيمة عند 1st يناير 1970 00:00:00 بتوقيت غرينتش (GMT).
تعتمد القيمة التي يتم إرجاعها بواسطة دالة الوقت على المنطقة الزمنية الافتراضية.
يتم تحديد المنطقة الزمنية الافتراضية في ملف php.ini. ويمكن أيضاً تحديدها برمجياً باستخدام الدالة date_default_timezone_set.
يعرض الكود أدناه الطابع الزمني الحالي.
<?php
echo time();
?>
بافتراض أنك قمت بحفظ الملف timestamp.php في مجلد phptuts، انتقل إلى URL http://localhost/phptuts/timestamp.php
ملاحظة: قيمة الطابع الزمني ليست ثابتة، بل تتغير كل ثانية.
الحصول على قائمة معرفات المنطقة الزمنية المتاحة
قبل أن ننظر في كيفية ضبط المنطقة الزمنية الافتراضية برمجيًا، دعونا نلقي نظرة على كيفية الحصول على قائمة بالمناطق الزمنية المدعومة.
<?php $timezone_identifiers = DateTimeZone::listIdentifiers(); foreach($timezone_identifiers as $key => $list){ echo $list . "<br/>"; } ?>
هنا،
- يستدعي الأمر "$timezone_identifiers = DateTimeZone::listIdentifiers();" الدالة الثابتة listIdentifiers التابعة للفئة المضمنة DateTimeZone. تُعيد الدالة listIdentifiers قائمةً من المعرّفات التي تُسند إلى المتغير $timezone_identifiers.
- تقوم الدالة "foreach{…}" بالتكرار عبر المصفوفة وطباعة القيم.
بافتراض أنك قمت بحفظ الملف list_time_zones.php في مجلد phptuts، انتقل إلى URL http://localhost/phptuts/list_time_zones.php
تقوم PHP بتعيين المنطقة الزمنية برمجياً
تسمح لك وظيفة date_default_timezone_set بتعيين المنطقة الزمنية الافتراضية من برنامج PHP النصي.
سيتم بعد ذلك استخدام المنطقة الزمنية المحددة بواسطة جميع التواريخ وظائف PHP في نصوصك البرمجية. وله الصيغة التالية.
<?php date_default_timezone_set(string $timezone_identifier); ?>
هنا،
- "date_default_timezone_set()" هي الوظيفة التي تحدد المنطقة الزمنية الافتراضية
- "string $timezone_identifier" هو معرف المنطقة الزمنية
يعرض النص البرمجي أدناه الوقت وفقًا للمنطقة الزمنية الافتراضية المحددة في ملف php.ini. ثم يقوم بتغيير المنطقة الزمنية الافتراضية إلى آسيا/كلكتا ويعرض الوقت مرة أخرى.
<?php echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); date_default_timezone_set("Asia/Calcutta"); echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); ?>
بافتراض أنك قمت بحفظ الملف set_time_zone.php في مجلد phptuts، انتقل إلى URL http://localhost/phptuts/set_time_zone.php
وظيفة PHP Mktime
تقوم الدالة mktime بإرجاع الطابع الزمني في ملف يونكس تنسيق.
يحتوي على الصيغة التالية.
<?php mktime(hour, minute, second, month, day, year, is_dst); ?>
هنا،
- "mktime(...)" هي وظيفة إنشاء الطابع الزمني لـ PHP
- كلمة "ساعة" اختيارية؛ إنها رقم الساعة
- كلمة "دقيقة" اختيارية؛ إنها عدد الدقائق
- كلمة "ثانية" اختيارية؛ إنها عدد الثواني
- كلمة "شهر" اختيارية؛ إنها رقم الشهر
- كلمة "يوم" اختيارية؛ إنها رقم اليوم
- كلمة "سنة" اختيارية؛ إنها رقم السنة
- يُعدّ "is_dst" خيارًا اختياريًا؛ ويُستخدم لتحديد التوقيت الصيفي. القيمة 1 تعني وجود التوقيت الصيفي، و0 تعني عدم وجوده، و-1 تعني أنه غير معروف.
دعونا الآن نلقي نظرة على مثال يقوم بإنشاء طابع زمني للتاريخ 13/10/2025 باستخدام وظيفة mktime.
<?php
echo mktime(0,0,0,10,13,2025);
?>
هنا،
- "0,0,0" هي الساعة والدقيقة والثانية على التوالي.
- "10" هو شهر السنة
- "13" هو يوم الشهر
- "2025" هو العام
الإخراج:
1760328000
مرجع تنسيق التاريخ في PHP
توضح الجداول أدناه أحرف التنسيق الشائعة المستخدمة عند العمل مع دوال التاريخ في PHP.
معلمات الوقت
| معامل | الوصف | مثال |
|---|---|---|
| "R" | إرجاع التاريخ والوقت الكاملين |
<?php echo date("r"); ?> |
| "أ"، "أ" | إرجاع ما إذا كان الوقت الحالي هو صباحًا أو مساءً، أو صباحًا أو مساءً على التوالي |
<?php echo date("a"); echo date("A"); ?> |
| "g"، "G" | إرجاع الساعة بدون الأصفار البادئة [1 إلى 12]، [0 إلى 23] على التوالي |
<?php echo date("g"); echo date("G"); ?> |
| "h"، "H" | تُرجع الساعة مع الأصفار البادئة [من 01 إلى 12]، [من 00 إلى 23] على التوالي |
<?php echo date("h"); echo date("H"); ?> |
| "يكون" | إرجاع الدقائق/الثواني ذات الأصفار البادئة [00 إلى 59] |
<?php echo date("i"); echo date("s"); ?> |
معلمات اليوم
| معامل | الوصف | مثال |
|---|---|---|
| "د" | إرجاع يوم الشهر بالأصفار البادئة [01 إلى 31] |
<?php echo date("d"); ?> |
| "ي" | إرجاع يوم من الشهر بدون أصفار بادئة [من 1 إلى 31] |
<?php echo date("j"); ?> |
| "د" | يُعيد الأحرف الثلاثة الأولى من اسم اليوم [من الأحد إلى السبت] |
<?php echo date("D"); ?> |
| "L" | يُعيد اسم اليوم من أيام الأسبوع [من الأحد إلى السبت] |
<?php echo date("l"); ?> |
| "w" | يُرجع يوم الأسبوع بدون أصفار بادئة [من 0 إلى 6]؛ يتم تمثيل يوم الأحد بصفر (0) حتى يتم تمثيل يوم السبت بستة (6). |
<?php echo date("w"); ?> |
| "Z" | إرجاع يوم السنة بدون مسافات بادئة [من 0 إلى 365] |
<?php echo date("z"); ?> |
معلمات الشهر
| معامل | الوصف | مثال |
|---|---|---|
| "م" | إرجاع رقم الشهر الذي يحتوي على أصفار بادئة [01 إلى 12] |
<?php echo date("m"); ?> |
| "ن" | إرجاع رقم الشهر بدون الأصفار البادئة [1 إلى 12] |
<?php echo date("n"); ?> |
| "M" | إرجاع الأحرف الثلاثة الأولى من اسم الشهر [من يناير إلى ديسمبر] |
<?php echo date("M"); ?> |
| "F" | إرجاع اسم الشهر [من يناير إلى ديسمبر] |
<?php echo date("F"); ?> |
| "ر" | إرجاع عدد أيام الشهر [28 إلى 31] |
<?php echo date("t"); ?> |
معلمات السنة
| معامل | الوصف | مثال |
|---|---|---|
| "L" | تُرجع الدالة 1 إذا كانت السنة كبيسة، و0 إذا لم تكن كذلك. |
<?php echo date("L"); ?> |
| "نعم" | يُرجع تنسيق السنة المكون من أربعة أرقام |
<?php echo date("Y"); ?> |
| "نعم" | يُرجع تنسيق السنة المكون من رقمين (من 00 إلى 99) |
<?php echo date("y"); ?> |



