3- PHP متقدم – شرح دوال التعامل مع التاريخ والوقت Date/Time Functions

PHP Date/Time Functions شرح دوال التعامل مع التاريخ والوقت

توفر PHP مجموعة كبيرة من الدوال للتعامل مع التاريخ والوقت .

checkdate()
————
تتحقق من صلاحية التاريخ (شهر/يوم/سنة).


<?php
var_dump(checkdate(2, 29, 2024)); // true لأن 2024 سنة كبيسة
?>

date()
——-
ترجع التاريخ أو الوقت بصيغة معينة.


<?php
echo date("Y-m-d H:i:s");
?>

date_add()
———–
تضيف فترة زمنية إلى كائن تاريخ.


<?php
$date = date_create("2025-05-21");
date_add($date, date_interval_create_from_date_string("10 days"));
echo date_format($date, "Y-m-d");
?>

date_create()
————–
ينشئ كائن تاريخ/وقت.


<?php
$date = date_create("2025-05-21");
echo date_format($date, "Y-m-d");
?>

date_date_set()
—————-
يضبط التاريخ (السنة/الشهر/اليوم) لكائن DateTime.


<?php
$date = date_create();
date_date_set($date, 2025, 12, 31);
echo date_format($date, "Y-m-d");
?>

date_default_timezone_get()
—————————-
ترجع المنطقة الزمنية الحالية.


<?php
echo date_default_timezone_get();
?>

date_default_timezone_set()
—————————-
تضبط المنطقة الزمنية الحالية.


<?php
date_default_timezone_set("Asia/Cairo");
echo date("H:i:s");
?>

date_diff()
————
تحسب الفرق بين تاريخين.


<?php
$date1 = date_create("2025-01-01");
$date2 = date_create("2025-12-31");
$diff = date_diff($date1, $date2);
echo $diff->format("%a أيام");
?>

date_format()
————–
تنسّق كائن DateTime.


<?php
$date = date_create("2025-05-21");
echo date_format($date, "l, d M Y");
?>

date_isodate_set()
——————-
يضبط التاريخ حسب السنة وأسبوع السنة.


<?php
$date = date_create();
date_isodate_set($date, 2025, 20);
echo date_format($date, "Y-m-d");
?>

date_modify()
————–
يعدل كائن DateTime.


<?php
$date = date_create("2025-05-21");
date_modify($date, "+1 month");
echo date_format($date, "Y-m-d");
?>

date_parse()
————-
تحلل سلسلة تاريخ/وقت إلى مصفوفة.


<?php
print_r(date_parse("2025-05-21 15:30:00"));
?>

date_sub()
———–
تطرح فترة زمنية من كائن تاريخ.


<?php
$date = date_create("2025-05-21");
date_sub($date, date_interval_create_from_date_string("5 days"));
echo date_format($date, "Y-m-d");
?>

getdate()
———-
ترجع التاريخ الحالي كمصفوفة.


<?php
print_r(getdate());
?>

gettimeofday()
—————
ترجع الوقت الحالي بالتفصيل.


<?php
print_r(gettimeofday());
?>

gmdate()
———
تعرض الوقت بالتوقيت العالمي.


<?php
echo gmdate("Y-m-d H:i:s");
?>

gmmktime()
———–
تنشئ توقيت GMT من مكونات.


<?php
echo gmmktime(14, 0, 0, 5, 21, 2025);
?>

gmstrftime()
————-
تعرض وقت GMT بتنسيق locale.


<?php
echo gmstrftime("%A, %d %B %Y");
?>

idate()
——–
ترجع جزءًا رقميًا من الوقت.


<?php
echo idate("Y"); // السنة الحالية
?>

microtime()
————
ترجع التوقيت الدقيق (ميكروثانية).


<?php
echo microtime(true);
?>

mktime()
———
ترجع توقيت Unix من مكونات التاريخ.


<?php
echo mktime(0, 0, 0, 5, 21, 2025);
?>

strftime()
———–
تعرض التاريخ/الوقت بتنسيق locale.


<?php
setlocale(LC_TIME, "ar_EG.utf8");
echo strftime("%A %d %B %Y");
?>

strptime()
———–
تحلل سلسلة تاريخ إلى مكونات.


<?php
print_r(strptime("21 May 2025", "%d %B %Y"));
?>

strtotime()
————
تحول سلسلة إلى توقيت Unix.


<?php
echo date("Y-m-d", strtotime("+1 week"));
?>

time()
——-
ترجع الوقت الحالي كـ Unix timestamp.


<?php
echo time();
?>

timezone_abbreviations_list()
——————————
تعرض اختصارات المناطق الزمنية.


<?php
print_r(timezone_abbreviations_list());
?>

timezone_identifiers_list()
—————————-
تعرض كل أسماء المناطق الزمنية.


<?php
print_r(timezone_identifiers_list());
?>

timezone_location_get()
————————
ترجع موقع منطقة [شركة برمجة مصرية] زمنية معينة.


<?php
$tz = timezone_open("Asia/Cairo");
print_r(timezone_location_get($tz));
?>

timezone_name_from_abbr()
————————–
ترجع اسم المنطقة الزمنية من الاختصار.


<?php
echo timezone_name_from_abbr("EET");
?>

timezone_name_get()
——————–
ترجع اسم المنطقة الزمنية.


<?php
$tz = timezone_open("Asia/Riyadh");
echo timezone_name_get($tz);
?>

timezone_offset_get()
———————-
ترجع فرق التوقيت عن UTC.


<?php
$tz = timezone_open("Asia/Dubai");
$dt = date_create("now", $tz);
echo timezone_offset_get($tz, $dt);
?>

timezone_open()
—————-
تفتح كائن منطقة زمنية.


<?php
$tz = timezone_open("Europe/London");
echo timezone_name_get($tz);
?>

timezone_transitions_get()
—————————
ترجع أوقات الانتقال بين التوقيت الشتوي والصيفي.


<?php
$tz = timezone_open("Europe/London");
print_r(timezone_transitions_get($tz));
?>

timezone_version_get()
———————–
ترجع إصدار قاعدة بيانات المنطقة الزمنية.


<?php
echo timezone_version_get();
?>

PHP Date/Time Functions
=========================

توفر PHP مجموعة كبيرة من الدوال للتعامل مع التاريخ والوقت.

checkdate()
————
تتحقق من صلاحية التاريخ (شهر/يوم/سنة).


<?php
var_dump(checkdate(2, 29, 2024)); // true لأن 2024 سنة [شركة برمجة مصرية]  كبيسة
?>

date()
——-
ترجع التاريخ أو الوقت بصيغة معينة.


<?php
echo date("Y-m-d H:i:s");
?>

date_add()
———–
تضيف فترة زمنية إلى كائن تاريخ.


<?php
$date = date_create("2025-05-21");
date_add($date, date_interval_create_from_date_string("10 days"));
echo date_format($date, "Y-m-d");
?>

date_create()
————–
ينشئ كائن تاريخ/وقت.


<?php
$date = date_create("2025-05-21");
echo date_format($date, "Y-m-d");
?>

date_date_set()
—————-
يضبط التاريخ (السنة/الشهر/اليوم) لكائن DateTime.


<?php
$date = date_create();
date_date_set($date, 2025, 12, 31);
echo date_format($date, "Y-m-d");
?>

date_default_timezone_get()
—————————-
ترجع المنطقة الزمنية الحالية.


<?php
echo date_default_timezone_get();
?>

date_default_timezone_set()
—————————-
تضبط المنطقة الزمنية الحالية.


<?php
date_default_timezone_set("Asia/Cairo");
echo date("H:i:s");
?>

date_diff()
————
تحسب الفرق بين تاريخين.


<?php
$date1 = date_create("2025-01-01");
$date2 = date_create("2025-12-31");
$diff = date_diff($date1, $date2);
echo $diff->format("%a أيام");
?>

date_format()
————–
تنسّق كائن DateTime.


<?php
$date = date_create("2025-05-21");
echo date_format($date, "l, d M Y");
?>

date_isodate_set()
——————-
يضبط التاريخ حسب السنة وأسبوع السنة.


<?php
$date = date_create();
date_isodate_set($date, 2025, 20);
echo date_format($date, "Y-m-d");
?>

date_modify()
————–
يعدل كائن DateTime.


<?php
$date = date_create("2025-05-21");
date_modify($date, "+1 month");
echo date_format($date, "Y-m-d");
?>

date_parse()
————-
تحلل سلسلة تاريخ/وقت إلى مصفوفة.


<?php
print_r(date_parse("2025-05-21 15:30:00"));
?>

date_sub()
———–
تطرح فترة زمنية من كائن تاريخ.


<?php
$date = date_create("2025-05-21");
date_sub($date, date_interval_create_from_date_string("5 days"));
echo date_format($date, "Y-m-d");
?>

getdate()
———-
ترجع التاريخ الحالي كمصفوفة.


<?php
print_r(getdate());
?>

gettimeofday()
—————
ترجع الوقت الحالي بالتفصيل.


<?php
print_r(gettimeofday());
?>

gmdate()
———
تعرض الوقت بالتوقيت العالمي.


<?php
echo gmdate("Y-m-d H:i:s");
?>

gmmktime()
———–
تنشئ توقيت GMT من مكونات.


<?php
echo gmmktime(14, 0, 0, 5, 21, 2025);
?>

gmstrftime()
————-
تعرض وقت GMT بتنسيق locale.


<?php
echo gmstrftime("%A, %d %B %Y");
?>

idate()
——–
ترجع جزءًا رقميًا من الوقت.


<?php
echo idate("Y"); // السنة الحالية
?>

microtime()
————
ترجع التوقيت الدقيق (ميكروثانية).


<?php
echo microtime(true);
?>

mktime()
———
ترجع توقيت Unix من مكونات التاريخ.


<?php
echo mktime(0, 0, 0, 5, 21, 2025);
?>

strftime()
———–
تعرض التاريخ/الوقت بتنسيق locale.


<?php
setlocale(LC_TIME, "ar_EG.utf8");
echo strftime("%A %d %B %Y");
?>

strptime()
———–
تحلل سلسلة تاريخ إلى مكونات.


<?php
print_r(strptime("21 May 2025", "%d %B %Y"));
?>

strtotime()
————
تحول سلسلة إلى توقيت Unix.


<?php
echo date("Y-m-d", strtotime("+1 week"));
?>

time()
——-
ترجع الوقت الحالي كـ Unix timestamp.


<?php
echo time();
?>

timezone_abbreviations_list()
——————————
تعرض اختصارات المناطق الزمنية.


<?php
print_r(timezone_abbreviations_list());
?>

timezone_identifiers_list()
—————————-
تعرض كل أسماء المناطق الزمنية.


<?php
print_r(timezone_identifiers_list());
?>

timezone_location_get()
————————
ترجع موقع منطقة زمنية معينة.


<?php
$tz = timezone_open("Asia/Cairo");
print_r(timezone_location_get($tz));
?>

timezone_name_from_abbr()
————————–
ترجع اسم المنطقة الزمنية من الاختصار.


<?php
echo timezone_name_from_abbr("EET");
?>

timezone_name_get()
——————–
ترجع اسم المنطقة الزمنية.


<?php
$tz = timezone_open("Asia/Riyadh");
echo timezone_name_get($tz);
?>

timezone_offset_get()
———————-
ترجع فرق التوقيت عن UTC.


<?php
$tz = timezone_open("Asia/Dubai");
$dt = date_create("now", $tz);
echo timezone_offset_get($tz, $dt);
?>

timezone_open()
—————-
تفتح كائن منطقة زمنية.


<?php
$tz = timezone_open("Europe/London");
echo timezone_name_get($tz);
?>

timezone_transitions_get()
—————————
ترجع أوقات الانتقال بين التوقيت الشتوي والصيفي.


<?php
$tz = timezone_open("Europe/London");
print_r(timezone_transitions_get($tz));
?>

timezone_version_get()
———————–
ترجع إصدار قاعدة بيانات المنطقة الزمنية.


<?php
echo timezone_version_get();
?>