وقت خادم PHP هو الحالي. تمثيل التاريخ والوقت

17.04.2019

يعد العمل مع التاريخ والوقت في PHP أمرًا سهلاً نسبيًا. التوفر تماما كميات كبيرةتجعل الوظائف التعليمات البرمجية أقل تعقيدًا (وفي PHP 5.2 مع ظهور DateTime وفي 5.3 مع إضافة فئتي DateInterval وDatePeriod والأساليب الفردية، أصبح العمل مع التواريخ أبسط وأكثر ملاءمة). لذا، للعمل مع التاريخ... أولاً، على أية حال، يجب أن تضع في اعتبارك ما يلي:

  • يمكن تنفيذ أي إجراء تقريبًا بعدة طرق؛
  • تتم كتابة كافة التعليمات البرمجية للتوضيح وأمثلة العمل؛
  • قد لا تكون النتيجة البديلة المقترحة مناسبة دائمًا عند استخدام نتيجة سابقة إصدارات PHP(أحيانًا يكون أسهل من تحرير كود العمل منذ سنوات عديدة مضت)؛

في PHP 5.3 ل العملية الصحيحةمؤرخة لتجنب أخطاء المعايير الصارمة. اليوم، كقاعدة عامة، يتم أخذ هذا الموقف في الاعتبار إما في البرامج النصية أو في إعدادات الاستضافة.

تقوم PHP بتحويل الطابع الزمني لـ UNIX حتى الآن بتنسيق معين

من أبسط المهام. الوظيفة المستخدمة هي: التاريخ(تنسيق $، $time)
تقوم المعلمة الأولى بتمرير تنسيق التاريخ - لمزيد من التفاصيل، راجع الوثائق (للحصول على "المعتاد" 28.02.2012 15:43:59 يجب أن تستخدم:
التاريخ ("d.m.Y H:i:s"، $time)

PHP كيفية معرفة تاريخ الغد/الأمس

كل شيء بسيط هنا أيضًا. تحصل الدالة time() على الوقت الحالي بتنسيق UNIX Timestamp. نطرح (تاريخ الأمس) أو نضيف (غدًا) عدد الثواني المطلوبة (86400 = 3600*24 - بالأيام) ونحصل على:
$الآن = الوقت(); // غير مطلوب
$الأمس = الوقت()-3600*24;
$tomorrow = time()+3600*24;
$weekBefore = time() - 3600*24*7; // منذ أسبوع
صدى "أمس: "،التاريخ("d.m.Y"، $الأمس)،"
غدًا:",date("d.m.Y",$tomorrow);

PHP كيفية الحصول على تاريخ بإزاحة محددة (X أيام سابقة/لاحقة)

في بعض الأحيان تحتاج إلى معرفة التاريخ الذي سيكون بعد عدة أيام من التاريخ المحدد. على سبيل المثال، دفع المستخدم مقابل الخدمة في 11 فبراير 2013 لمدة 3 أسابيع. معلومات الدفع متاحة. حتى أي تاريخ يتم السداد؟

عندما يمكنك "فقط" إضافة بضعة أيام والحصول على 13 فبراير، فإن الإجراء لا يسبب أي صعوبات خاصة. لكن ماذا عن كميات مختلفةأيام في الشهر؟ ماذا عن السنوات الكبيسة؟ لقد تم اختراع كل شيء أمامنا بالفعل - لحساب التاريخ من فترة زمنية معروفة سنستخدم mktime

$Payment = array("day"=>11,"month"=>2,"year"=>2013);
$toDate = mktime(0,0,0,$Payment["month"],$Payment["day"]+3*7,$Payment["year"]);
تاريخ الصدى("d.m.Y",$toDate); // خاتمة
// في PHP > 5.3 باستخدام DateInterval
date_default_timezone_set("أوروبا/موسكو");
$datetime = new DateTime(date());
$datetime->sub(new DateInterval("P7D")); // ناقص 7 أيام

PHP كيفية حساب الفرق بين التواريخ

يبدو حالة بسيطة- هناك تاريخان، احسب عدد الأيام (الأشهر والأيام) بينهما. ومع ذلك، سيستغرق التنفيذ "اليدوي" بعض الوقت، وهناك احتمال أن يفوتك شيء ما (من أجل المتعة - يمكن لأولئك الذين يريدون المحاولة ترك الكود في التعليقات). تحتوي لغة PHP على دالة date_diff مدمجة لحساب الفرق بين التواريخ، أو بشكل أكثر دقة Datetime::diff
$datetime1 = new DateTime("2013-05-01");
$datetime2 = new DateTime("2013-01-01");
$interval = $datetime1->diff($datetime2);
echo $interval->format("%R%a day after New Year");

تقوم PHP بتحويل أيام DDD إلى X سنوات Y أشهر Z سنوات

في بعض الأحيان تحتاج إلى عرض الوقت بعد حدث معين. على سبيل المثال، بعد التسجيل مرت. للراحة (3200 يوم لا تعني الكثير)، يمكن تحويل الإدراك إلى سنوات وأشهر باستخدام تنسيق DateInterval::format
$registerDate = new DateTime("2009-03-03");
$today = new DateTime();
$interval = $today->diff($registerDate);
صدى "انقضت مدة التسجيل:";
echo $interval->format("%a day")."\n"; // العدد الإجمالي للأيام
صدى "أو"؛
echo $interval->format("%m شهر، %d يوم"); // أشهر، أيام

ترجمة PHP من التاريخ إلى الطابع الزمني - تحليل التاريخ بالتنسيق الروسي

تحتاج أحيانًا إلى تحويل تاريخ بتنسيق يسهل قراءته إلى تنسيق UNIX TIMESTAMP لتحليل تاريخ بالتنسيق "2013-05-30 12:35" إلى مكوناته (احصل على السنة والشهر واليوم بشكل منفصل). )، يمكنك استخدام الدالة date_parse. للتحويل مباشرة إلى الطابع الزمني لنظام التشغيل Unix، يمكنك استخدام strtotime (بالإضافة إلى أشكال مختلفة مثل "الآن"، و"+1 يوم"، و"الخميس القادم" - php.net/manual/en/datetime.formats.php):
صدى strtotime("2013-05-30");
print_r (date_parse("2013-05-30 12:35"));

ومع ذلك، بالنسبة لروسيا فإن التنسيق الأكثر شيوعًا هو DD.MM.YYYY. يمكنك بالطبع تقسيم التاريخ حسب رمز الفترة والحصول على اليوم والشهر والسنة واستخدام الدالة mktime لمعرفة قيمة UNIX TIMESTAMP المقابلة. قدم PHP5.3 وظيفة date_parse_from_format، والتي يمكنك تمرير سلسلة تنسيق إليها. وبالنسبة لـ PHP5.2، استخدمت strptime (الذي، كما اتضح فيما بعد، لا يعلم الجميع بوجوده، ربما لأنه ببساطة لم يتم تنفيذه لنظام التشغيل Windows: لم يتم تنفيذ هذه الوظيفة على أنظمة Windows الأساسية):

$تاريخ = "05/30/2013 12:35";
$format = "d.m.Y H:i";
print_r (date_parse_from_format($format,$date));
// الخيار البديلل PHP5.2
$format = "%d.%m.%Y %H:%M"; // يختلف عن ذلك المستخدم في دالة التاريخ
$d = strptime($date, $format);
$newDate = mktime($d["tm_hour"], $d["tm_min"], $d["tm_sec"],
$d["tm_mon"]+1, $d["tm_mday"], $d["tm_year"]+1900); // tm_mon 0-11، tm_year 1900
صدى $newDate؛

بالإضافة إلى ذلك، تحتوي الدالة strptime على ميزات خاصة - يتم إزاحة الشهر بمقدار واحد (يناير - 0)، والسنة هي عدد السنوات منذ عام 1900، أي. لعام 2013 سيكون $d['tm_year'] مساويًا لـ 113.

الروابط و معلومات مفيدة:
وظائف PHP dateTime http://www.php.net/manual/en/ref.datetime.php - وظائف للعمل مع التاريخ
فئة PHP DateTime http://www.php.net/manual/en/class.datetime.php
PHP date_diff http://www.php.net/manual/en/function.date-diff.php
PHP strftime http://ru2.php.net/manual/en/function.strftime.php
PHP date_parse_from_format http://ru2.php.net/manual/en/function.date-parse-from-format.php

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

الوظيفة الأساسية المتعلقة التاريخ والوقت في PHP، - هذا وظيفة الوقت ().، والتي تُرجع عدد الثواني التي مرت منذ ذلك الحين منتصف ليل 01/01/1970( ميلاد العصر يونكس):

وقت الصدى ()؛
?>

إطلاق هذا البرنامج النصي، سوف تكتشف عدد الثواني التي مرت منذ ذلك الحين منتصف ليل 01/01/1970حتى لحظة المكالمة وظائف الوقت ().في البرنامج النصي الخاص بك.

وبطبيعة الحال، إلى جانب هذا الوظيفة الأساسية، وهو موجود في جميع لغات البرمجة حيث يمكنك ذلك العمل مع التاريخ والوقت(بواسطة على الأقل، من بين تلك التي أعرفها)، هناك وظيفة أخرى تسمى تاريخ الحصول ():

$datetime = getdate();
foreach ($ datetime كـ $k=>$v)
صدى "$k - $v
";
?>

من خلال تشغيل هذا البرنامج النصي، سترى مجموعة من المفاتيح في المصفوفة والقيم المقابلة لها (في نفس الوقت، كررنا البناء com.foreach). أعتقد أنه لن يكون من الصعب عليك الآن معرفة أي بيانات متعلقة به التاريخ و الوقت. على سبيل المثال، لعرض الوقت الحالي، يمكنك كتابة الكود التالي:

$datetime = getdate();
echo $datetime["hours"]...":":":$datetime["Minutes"]..":":":.$datetime["thans"];
?>

أيضًا وظائف getdate()هناك معلمة اختيارية تعني عدد الثواني التي مرت منذ ذلك الحين منتصف ليل 01/01/1970. تم تصميمه بحيث لا تتمكن هذه الوظيفة من إرجاع الوقت والتاريخ الحاليين فحسب، بل بشكل عام أي:

$datetime = getdate(152353232);
صدى $datetime["year"];
?>

ونتيجة لذلك، سوف ترى 1974سنة.

يوجد ايضا وظيفة التاريخ ().. أوصي بالنظر إلى وصفه في الكتاب المرجعي، منذ ذلك الحين هذه الوظيفةيقبل معلمة معقدة للغاية تحدد تنسيق إخراج التاريخ. هناك ما يزيد قليلاً عن 30 عنصر تنسيق. وفي المثال أدناه سأذكر القليل منها، وألقي نظرة على الباقي في الكتاب المرجعي، لأنك لا تحتاج إلى حفظها، ولكن من المستحسن جدًا أن تتعرف عليها. لكن لا بد من معرفة مبدأ استخدامها، والمثال التالي عنها:

تاريخ الصدى("اليوم d.m.Y H:i:s");
?>

ونتيجة لذلك، سترى شيئا مثل هذا: " اليوم 15/11/2010 الساعة 21:44:24". أيضًا وظائف التاريخ ().هناك أيضًا معلمة اختيارية ثانية تحدد الطابع الزمني، القيمة فقط يساوي الكميةمرت ثواني منذ ذلك الحين منتصف ليل 01/01/1970. مثال على استخدام المعلمة الثانية:

echo date("ذات مرة كان هناك d.m.Y H:i:s", 5393235329);
?>

يوجد ايضا دالة gmdate()، وهو التناظرية الكاملة وظائف التاريخ ().، لكن دالة gmdate()يُظهر الوقت ليس وفقًا للمنطقة الزمنية للخادم الذي يعمل عليه البرنامج النصي، ولكن وفقًا للمنطقة الزمنية غرينتش. من الواضح، باستخدام هذه الوظيفة، تحتاج إلى حفظ جميع المعلومات حول التاريخ والوقت الذي يراه المستخدم، وعند الإخراج، تحتاج إلى التكيف مع المنطقة الزمنية لكل مستخدم (من الناحية المثالية، بالطبع):

echo gmdate("الآن في غرينتش D M j H:i:s T Y")
?>

ونتيجة لذلك، سترى شيئا مثل هذا: " الإثنين 15 نوفمبر الساعة 18:52:45 بتوقيت جرينتش 2010"بالطبع، سترى تاريخًا مختلفًا، ولكن بتنسيق مماثل. كما أوصي بشدة بالانتقال إلى الكتاب المرجعي والتعرف على عناصر التاريخ والوقت الأخرى الموجودة في بي أتش بي(فأعطيت الثلث فقط) منذ ذلك الحين وظائف date() وgmdate()- هذا هو الأبسط والأكثر طريقة سريعة الحصول على التاريخ والوقتفي أي شكل تقريبا.

من بين مهام البرمجة المختلفة، تعد عمليات التلاعب المختلفة بقيم التاريخ والوقت شائعة جدًا. نادر النظام الآلي، يمكن لقاعدة البيانات الاستغناء عن تخزين المعلومات حول وقت عملية معينة. بالإضافة إلى إضافة تاريخ إلى سجل قاعدة بيانات أو عرض هذا التاريخ، هناك العديد من المهام لعرض هذه التواريخ فيها في أشكال مختلفةوالتحقق مما إذا كان الوقت الحالي يتطابق مع مؤقت معين، وحساب الفترة بين تاريخين وغير ذلك الكثير.

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

في عمل PHPمع تاريخ غالبًا ما يواجهه UNIX TIMESTAMP. هنا يتم تخزين الوقت كعدد صحيح. يبدأ حساب الوقت في 1 يناير 1970. لذلك، على سبيل المثال، سيتم تمثيل التاريخ والوقت 12/11/2014 19:40:00 بالرقم 1418316000. يوضح هذا الرقم عدد الثواني التي مرت منذ التاريخ الصفري في 1 يناير 1970، والذي يسمى عصر Unix.

يتم عرض مثال لصفحة PHP التي توفر إمكانيات تحويل البيانات على موقع الويب في قسم البرامج مع برنامج "تحويل تنسيق التاريخ والوقت". هنا يمكنك إنشاء التاريخ المطلوب بتنسيق UNIX TIMESTAMP، بالإضافة إلى تحويل هذا التنسيق إلى التنسيق القياسي، انسان قارئمنظر.

الحصول على الوقت والتاريخ الحاليين في PHP

للحصول على وقت الخادم الحالي، استخدم الوظيفة

الوقت الحقيقي (باطل)

والذي سيعيد القيمة بتنسيق الطابع الزمني لنظام التشغيل Unix.

وقت الصدى ()؛ // إخراج الوقت الحالي بتنسيق الطابع الزمني لنظام التشغيل Unix

للوهلة الأولى ليس جدا تنسيق مناسبلشخص، ولكن، كما هو معروف، من عرض أبسطالبيانات، كلما زادت سرعة معالجة الكمبيوتر لهذه القيم. كما أن تخزين رقم في قاعدة بيانات يعد أكثر فعالية من حيث التكلفة من أي رقم آخر تنسيق خاص. أيضًا، PHP يعمل بنفس الطريقة مع مرور الوقت على كل من Unix و منصة ويندوزمما يجعل من الممكن استخدام الكود على أي من هذه المنصات.

تحويل تنسيق التاريخ والوقت في PHP

أبسط آلية تسمح لك بتحويل قيمة تاريخ رقمية إلى المزيد معاني واضحة، التي تقدمها الدالة:

تاريخ الحصول على المصفوفة ()

تعود مصفوفة متصلة، تحتوي على معلومات التاريخ. إذا لم يتم تحديد معلمة الطابع الزمني، فسيتم إرجاع الوقت الحالي. تحتوي هذه المصفوفة على القيم التالية:

تتيح لك المصفوفة الناتجة عرض القيم بالشكل المطلوب:

تاريخ $ = 1418372345؛
$date_mas = getdate($date);
صدى $date_mas["mday" ] . "." . $date_mas["mon" ] . "." . $date_mas["السنة" ]; // 12.12.2014


يمكنك أيضًا استخدام الوظيفة لتحويل تنسيق التاريخ والوقت:

تاريخ السلسلة (سلسلة $template [، int $unix_timestamp])

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

يتم تحديد التنسيق بالقيم التالية:

أ"قبل" و"بعد" الظهر: "صباحًا" أو "مساءً"
أ"قبل" و"بعد" الظهر بالحروف الكبيرة: "صباحا أو مساء"
ديوم الشهر مكون من رقمين (إذا كان الرقم أقل من 10، يأتي الصفر أولاً) (01 إلى 31)
ديوم الاسبوع من 3 حروف. على سبيل المثال، "الاثنين" (الاثنين)
ييوم من الشهر، رقم أو رقمان بدون أصفار بادئة (من 1 إلى 31)
Fاسم الشهر. على سبيل المثال "يناير"
حساعة، تنسيق 12 ساعة (01 إلى 12)
حساعة، تنسيق 24 ساعة (00 إلى 23)
زساعة، تنسيق 12 ساعة بدون أصفار (من 1 إلى 12)
زساعة، تنسيق 24 ساعة بدون أصفار (0 إلى 23)
أناالدقائق (00 إلى 59)
أنا (العاصمة ط)1 إذا كان الانتقال إلى وقت الصيفوإلا 0
ل1 إذا كانت السنة سنة كبيسة، أو 0 إذا لم تكن سنة كبيسة
بالوقت بتنسيق وقت الإنترنت ( نظام بديلوقت العد التنازلي لليوم) (من 000 إلى 999)
تالمنطقة الزمنية للكمبيوتر. على سبيل المثال، MDT
ل (حرف صغير L)يوم من أيام الأسبوع. على سبيل المثال، "الاثنين"
مالشهر، رقمين مع الأصفار (01 إلى 12)
نالشهر، رقم أو رقمين بدون أصفار (من 1 إلى 12)
ماسم الشهر المختصر. على سبيل المثال "جان"
رعدد أيام الشهر المحدد (من 28 إلى 31)
سثانية (0 إلى 59)
سالإنجليزية حرفين لاحقة الرقم الترتيبي ("st"، "nd"، "rd" أو "th")
شعدد صحيح من الثواني منذ بداية عصر UNIX
ذالسنة، رقمي، رقمين (14)
يالسنة، رقمية، 4 أرقام (2014)
ضالعدد الترتيبي لليوم في السنة (من 0 إلى 365)
زإزاحة المنطقة الزمنية بالثواني (من -43200 إلى 43200)
نرقم سريأيام الأسبوع من 1 (الاثنين) إلى 7 (الأحد) وفقًا لمعيار ISO-8601 (أضيف في PHP 5.1.0)
ثالرقم التسلسلي ليوم الأسبوع من 0 (الأحد) إلى 6 (السبت)
دبليوالرقم التسلسلي للأسبوع من السنة وفقًا لمعيار ISO-8601؛ تبدأ الأسابيع يوم الاثنين (أضيفت في PHP 4.1.0)
سرقم السنة وفقًا لمعيار ISO-8601. له نفس معنى Y، باستثناء عندما يكون رقم أسبوع ISO (W) من العام السابق أو التالي؛ ثم سيتم استخدام سنة ذلك الأسبوع. (أضيف في PHP 5.1.0)
هرمز مقياس المنطقة الزمنية. على سبيل المثال: UTC، GMT، Atlantic/Azores (تمت إضافته في PHP 5.1.0)
ياالفرق مع توقيت غرينتش بالساعات. على سبيل المثال: +0200
صالفرق عن توقيت غرينتش بنقطتين بين الساعات والدقائق. على سبيل المثال: +02:00 (أضيف في PHP 5.1.3)
جالتاريخ بالتنسيق القياسي ISO 8601، على سبيل المثال، 2014-12-12T15:19:21+00:00 (أضيف في PHP 5).
صالتاريخ بتنسيق » RFC 2822 على سبيل المثال: الخميس، 21 ديسمبر 2000 16:01:07 +0200
شعدد الثواني التي مرت منذ بداية عصر يونكس (عصر يونكس، 1 يناير 1970، الساعة 00:00:00 بتوقيت جرينتش)

كما ترون من القائمة، يمكنك الحصول على الكثير من بيانات التاريخ المفيدة باستخدام هذه الوظيفة. على سبيل المثال:

تاريخ $ = 1418372345؛ // التاريخ والوقت الأولي 12/12/2014 11:19:05

تاريخ الصدى("d.m.Y" , $date); // 12.12.2014 (التاريخ)
تاريخ الصدى("H:i:s" , $date); // 11:19:05 (التوقيت)
تاريخ الصدى("H:i" , $date); // 11:19 (التوقيت)
تاريخ الصدى("t" , $date); // 31 (عدد أيام الشهر)
تاريخ الصدى("z" , $date); // 345 (الرقم الترتيبي لليوم في السنة)
تاريخ الصدى ("l dS \of F Y h:i:s A" , $date); // الجمعة 12 ديسمبر 2014 11:19:05 صباحاً

ستتم طباعة الأحرف الأخرى المضمنة في النموذج كما هي على السطر. إذا كنت بحاجة إلى إدخال حرف يُستخدم في الوظيفة كرمز تنسيق، فسيتم إدراج الحرف "\" أمامه. بالنسبة للقيمة "\n" (الحرف الانتقالي خط جديد)، يجب عليك تحديد "\\n". وبالتالي، يمكنك إخراج رسالة كاملة تحتوي على معلومات التاريخ والوقت:

تاريخ الصدى( "اليوم يوم ضي سنة"، تاريخ $)؛ // اليوم هو اليوم 345 من عام 2014

تحويل التاريخ والوقت إلى تنسيق الطابع الزمني

لعكس تحويل التاريخ من شكل موحديتم تطبيق الوظيفة على قيمة الطابع الزمني الرقمي:

إنت مكتايم (]]]]]])

تقوم الدالة mktime() بإرجاع قيمة وقت Unix المطابقة للتاريخ والوقت المحددين بواسطة وسيطاتها. على سبيل المثال:

$my_date = mktime(10, 30, 0, 12, 12, 2014);

يجب أن تكون حذرًا بشأن ترتيب وسيطات الوظيفة: الساعات، الدقائق، الثواني، الشهر، اليوم، السنة.

يستثني تشكيل بسيطقيم التاريخ في الطابع الزمني، يمكن استخدام الدالة mktime() لإجراء العمليات الحسابية مع التواريخ. للقيام بذلك، يمكنك ببساطة إدخال الوسائط اللازمة. على سبيل المثال، إذا حددت الشهر الرابع عشر، فسيكون الشهر في القيمة النهائية هو الثاني، وستزيد قيمة السنة بمقدار واحد:

$my_day = 12;
$my_month = 12؛
$my_year = 2014؛

$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);

تاريخ الصدى("d.m.Y" , $new_date); // 12/05/2015 (التاريخ)

يمكنك أن تفعل الشيء نفسه مع المعلمات الأخرى.

التحقق من صحة التاريخ في PHP

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

تاريخ التحقق المنطقي (الشهر الدولي، اليوم الدولي، العام الدولي)

يُرجع صحيحًا إذا كان التاريخ المحدد بواسطة الوسيطات صحيحًا؛ وإلا فإنه يعود كاذبة. يعتبر التاريخ صحيحا إذا:

السنة في النطاق من 1 إلى 32767؛

يتراوح الشهر من 1 إلى 12؛

يُشار إلى اليوم الخاص بشهر معين، مع مراعاة السنوات الكبيسة، بشكل صحيح.

مثال للتحقق من التاريخ:

$my_day = 32;
$my_month = 12؛
$my_year = 2014؛

إذا (!checkdate($my_month, $my_day, $my_year))
صدى صوت "خطأ: التاريخ غير صحيح";

دعونا نلقي نظرة على بعض التعليمات البرمجية من صفحة ويب حقيقية، ونقوم بإنشاء أول برنامج نصي PHP لدينا، أي أننا سنعرض التاريخ والوقت الحالي على موقعنا. يتم استخدام هذا البرنامج النصي كثيرًا على مواقع الويب وأعتقد أنه سيكون مفيدًا للكثيرين.

لنقم بإنشاء ملف PHP آخر ونسميه time.php. لقد درسناها سابقًا، إذا نسيت أعدها.

لذلك قمنا بإنشاء ملف time.php ووضعنا هذا الملف في مجلد myphp الذي تم إنشاؤه مسبقًا في . لقد درسنا هذا الموضوع في الدرس

افتح كود ملف time.php وبين العلامات و

اكتب الكود التالي: القائمة 1:

القائمة 1.

اليوم:

الوقت الحالي

هيا نطلق الملقم المحلي، يتصل ب شريط العنوانعنوان المتصفح http://localhost/myphp/time.phpواضغط على Enter. ونرى هذه الصورة:

يرجى ملاحظة أنه في في هذه الحالةيتم عرض وقت الخادم الحالي،أولئك. على سبيل المثال، إذا كان الخادم الذي "يعيش" موقعك عليه موجود في بلد آخر وكان الوقت الحالي يختلف عن موسكو، فإن قيمة الوقت المعروضة ستختلف أيضًا عن موسكو.

دعونا نلقي نظرة على الكود قائمة 1. تسميات نصية عادية " اليوم" و " الوقت الحالي" لا تتم معالجتها بواسطة معالج PHP المسبق ويتم إخراجها كـ "is". وبدلاً من هذه الإدخالات، يمكنك كتابة أي نص، على سبيل المثال فقط تاريخأو وقتإلخ.

وهنا كود php المضمن في الواصفاتقبل تقديمه للمتصفح، تتم معالجته بواسطة PHP.

كما كنت قد فهمت بالفعل، فإن وظيفة التاريخ في PHP المسؤول عن إخراج التاريخ والوقت. في بين قوسينتتم الإشارة إلى قيم عرض التاريخ والوقت. هناك الكثير من هذه القيم في PHP، وسنخصص الدرس المنفصل التالي لهذا التحليل ودراسة جميع القيم الممكنة.

تتم ترجمة عامل الصدى كـ ينسحب، في هذه الحالة نعني العرض على شاشة العرض تاريخو وقت الخادم.

يمكن تحقيق نفس النتيجة (العرض في المتصفح) عن طريق وضع البرنامج النصي بأكمله داخل واصفات PHP. ينظر القائمة 2:

القائمة 2.

صدى "اليوم:" ؛
تاريخ الصدى ("j F Y")؛
صدى "الوقت الحالي" ؛
تاريخ الصدى("H:i:s");
?>

الجميع عناصر النصيجب أن تكون تلك المخصصة للإخراج محاطة بعلامات اقتباس. سلاسل نصيةيمكن أن تكون مرفقة في كل من واحد و التنصيص، سنتحدث عن الفرق لاحقًا. دعامات:

صدى "اليوم" ؛

صدى "اليوم" ؛

متكافئة تمامًا وستظهر كما هي.

يتم استخدام حرف المسافة قبل علامة الاقتباس للإغلاق لفصل مخرجات دالة التاريخ عن النص المحيط. يتم دائمًا فصل جميع الأوامر في PHP بفاصلة منقوطة.

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

ملاحظة.

اسمحوا لي أن أذكرك أن الملف الذي تضع فيه إدراجات PHP يجب أن يكون له الامتداد .php، وبالإضافة إلى ذلك، يجب أن تدعم الاستضافة التي "يعيش" عليها موقعك PHP (اليوم هذا هو كل شيء تقريبًا

تم حظر JavaScript في متصفحك. الرجاء تفعيل جافا سكريبت ليعمل الموقع!

في تمثيل التاريخ والوقتالانظمة الموزعة مثل الإنترنت، يلعب الوقت دورًا خاصًا. بسبب الاختلافات الطفيفةساعة النظام من الممكن أن يخسر اللاعب في سوق الفوركس عشرات الآلاف من الدولارات خلال دقائق؛ سوف يرتكب نظام ذكاء الأعمال خطأً في التنبؤ؛ ستفقد خوادم NNTP أثناء المزامنة, معلومات مهمةإلخ.

يحتاجها المستخدم

  • يحتوي PHP على العديد من الوظائف للتعامل مع التاريخ والوقت. الأكثر استخداما هي:وقت()
  • تاريخ الحصول ()- إرجاع الوقت المطلق الحالي. هذا الرقم يساوي عدد الثواني التي مرت منذ منتصف ليل 1 يناير 1970 (منذ بداية عصر UNIX).

    - يقرأ معلومات التاريخ والوقت. تُرجع مصفوفة ترابطية تحتوي على معلومات للوقت المحدد أو الحالي (افتراضيًا). تحتوي المصفوفة على العناصر التالية:

    مثال 1 باستخدام getdate()
    $val) صدى "$key = $val
    "؛ صدى صوت "

    اليوم: $d.$d.$d"; ?>

    نتيجة المثال 1:

  • الثواني = 21 دقيقة = 4 ساعات = 12 يوم = 10 يوم = 4 شهر = 11 عام = 2005 يوم = 313 يوم من أيام الأسبوع = شهر الخميس = 0 نوفمبر = 1131613461 اليوم: 11/10/2005تاريخ() - تنسيق التاريخ والوقت. الوسيطات: سلسلة التنسيق والوقت المطلق. الوسيطة الثانية اختيارية. إرجاع سلسلة مع المعطى أوالتاريخ الحالي
    أ
    أبالصيغة المحددة. قد تحتوي سلسلة التنسيق على الرموز التالية:
    دتم تضمين تسمية "AM" أو "PM".
    ديوم الشهر (01-31)
    Fاسم مختصر ليوم من أيام الأسبوع (ثلاثة أحرف)
    زاسم الشهر كاملا
    زالساعة (تنسيق 12 ساعة بدون الأصفار البادئة)
    حالساعة (تنسيق 24 ساعة بدون الأصفار البادئة)
    حالساعة (تنسيق 12 ساعة)
    أناالساعة (تنسيق 24 ساعة)
    يالدقائق (00-59)
    يوم الشهر بدون الأصفار البادئة (1-31)ل
    لالاسم الكامل ليوم الأسبوع
    ممؤشر السنة الكبيسة (0 أو 1)
    مالشهر (01-12)
    ناسم الشهر المختصر (ثلاثة أحرف)
    سالشهر (1-12)
    رالثواني (00-59)
    شعدد أيام الشهر الواحد (من 28 إلى 31)
    ث
    ذالوقت المطلق
    يالسنة (مرتبتان)
    ضالسنة (أربع مراتب)
    زيوم من السنة (0-365)

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

    مثال 2

    باستخدام التاريخ ()

    نتيجة المثال 2:

    اليوم: 11/10/05 13:03

  • مكتايم ()- يُرجع الوقت المطلق، والذي يمكن استخدامه بعد ذلك مع دالتي date() أو getdate(). يستغرق ما يصل إلى ستة وسيطات عدد صحيح بالترتيب التالي:

    يشاهد
    دقائق
    ثواني
    شهر
    يوم من الشهر
    سنة

    مثال 3

    باستخدام مكتايم ()

    نتيجة المثال 3:

  • راجع التاريخ()- التحقق من صحة التاريخ. الحجج: الشهر، اليوم، السنة. يُرجع صحيحًا إذا كان التاريخ صحيحًا، أي.
    شهر - عدد صحيح من 1 إلى 12؛
    day عدد صحيح لا يتجاوز الرقم الإجماليأيام في شهر معين. في هذه الحالة، تتم معالجة السنوات الكبيسة بشكل صحيح؛
    year هو عدد صحيح من 1 إلى 32767.

    على سبيل المثال:

    إذا (! checkdate($month, 1, $year)) ( $d = getdate(); $month = $d; $year = $d; )

    انتباه! قد يكون التاريخ ضمن نطاق صالح، لكن وظائف التاريخ الأخرى لن تقبل القيمة. وبالتالي، لا ينبغي استخدام mktime() لسنوات قبل عام 1902، ويجب استخدامه بحذر لسنوات قبل عام 1970.

  • سترفتايم ()- تشكيل التاريخ والوقت المحلي. الوسيطات: سلسلة التنسيق والوقت المطلق. الوسيطة الثانية اختيارية. تقوم بإرجاع سلسلة بالتاريخ المحدد أو الحالي بالتنسيق المحدد. في هذه الحالة، يتم استخراج أسماء الأشهر وأيام الأسبوع من اللغة المحددة باستخدام الوظيفة. قد تحتوي سلسلة التنسيق على الرموز التالية:
    ٪أالاسم المختصر ليوم الأسبوع
    ٪أل
    ٪باسم الشهر المختصر
    ٪باسم مختصر ليوم من أيام الأسبوع (ثلاثة أحرف)
    تنسيق التاريخ والوقت المفضل
    رقم القرن
    ٪ديوم الشهر (1-31)
    ٪دمثل %م/%d/%y
    اسم الشهر المختصر (ثلاثة أحرف)
    مثل ٪ب
    الساعة (تنسيق 12 ساعة)
    ٪أناالساعة (تنسيق 24 ساعة بدون الأصفار البادئة)
    السنة (أربع مراتب)
    اسم الشهر المختصر (ثلاثة أحرف)
    دقائق
    ٪نحرف السطر الجديد
    %pتم تضمين تدوين "am" أو "pm".
    %rالوقت باستخدام تدوين صباحا/مساءا
    % رالوقت بتنسيق 24 ساعة
    ٪سالشهر (1-12)
    %tحرف علامة التبويب
    %Tمثل %H:%M:%S
    % شعدد أيام الأسبوع (1 - الاثنين، 7 - الأحد)
    %Uرقم الأسبوع. يبدأ العد التنازلي في يوم الأحد الأول من العام
    ٪الخامسرقم الأسبوع طبقاً للمواصفة ISO 8601:1988. يجب أن يتكون الأسبوع الأول من أربعة أيام على الأقل، ويعتبر يوم الاثنين هو اليوم الأول
    %Wرقم الأسبوع. يبدأ العد التنازلي في أول يوم اثنين من العام
    %wعدد أيام الأسبوع (0 - الأحد، 6 - السبت)
    %xتنسيق التاريخ المفضل بدون وقت
    %Xتنسيق الوقت المفضل بدون تاريخ
    %yالوقت المطلق
    السنة (مرتبتان)
    %Zالمنطقة الزمنية (الاسم أو الاختصار)
    %% رمز "٪"

    سيتم إدراج أي معلومات أخرى مضمنة في سلسلة التنسيق في السلسلة التي تم إرجاعها.