أنا أب الآن منذ 1.5 سنة وهذا يظهر بوضوح في الوقت المحدد لدمج العلاقات العامة أو دفع هذه الحزمة إلى أبعد من ذلك. الوقت هو العائق الأكبر هنا. يسعدني أن أنقل المشروع إلى شخص لديه المزيد من الوقت والحافز لدفع المشروع إلى الأمام. فقط أرسل لي رسالة. هتافات!
_ _ _ __ ___ ___ _ __ ___ ___ _ __ | |_ _ __ | |__ _ __ | '_ ` _ / _ | '_ ` _ / _ '_ | __| | '_ | '_ | '_ | | | | | | (_) | | | | | | __/ | | | |_ _| |_) | | | | |_) | |_| |_| |_|___/|_| |_| |_|___|_| |_|__(_) .__/|_| |_| .__/ |_| |_|
تغيير السجل
مكتبة التاريخ لتحليل ومعالجة وتنسيق التواريخ مع i18n.
PHP 5.3 أو الأحدث منذ moment.php يعتمد على فئة DateTime الخاصة بـ php.
سهل التثبيت عبر الملحن. لا تزال لا تعرف ما هو الملحن؟ أبلغ نفسك هنا.
composer require fightbulc/moment
$m = new MomentMoment(); // الافتراضي هو "الآن" UTCecho $m->format(); // على سبيل المثال 2012-10-03T10:00:00+0000$m = new MomentMoment('now', 'Europe/Berlin');echo $m->format(); // على سبيل المثال 2012-10-03T12:00:00+0200$m = new MomentMoment('2017-06-06T10:00:00', 'Europe/Berlin');echo $m->format(); // على سبيل المثال 2012-10-03T12:00:00+0200$m = new MomentMoment(1499366585);echo $m->format(); // على سبيل المثال 2017-07-06T18:43:05+0000
تقوم اللحظة بتوزيع تنسيقات التاريخ التالية كمدخل:
const ATOM = 'Ym-dTH:i:sP'; // 2005-08-15T15:52:01+00:00const COOKIE = 'l, dMy H:i:s T'; // الاثنين، 15 أغسطس 2005 15:52:01 UTCconst ISO8601 = 'Ym-dTH:i:sO'; // 2005-08-15T15:52:01+0000const RFC822 = 'D, d M y H:i:s O'; // الإثنين، 15 أغسطس 05 15:52:01 +0000const RFC850 = 'l, dMy H:i:s T'; // الاثنين، 15 أغسطس 2005 15:52:01 UTCconst RFC1036 = 'D, d M y H:i:s O'; // Mon, 15 Aug 05 15:52:01 +0000const RFC1123 = 'D, d M Y H:i:s O'; // الإثنين، 15 أغسطس 2005 15:52:01 +0000const RFC2822 = 'D, d M Y H:i:s O'; // الإثنين، 15 أغسطس 2005 15:52:01 +0000const RSS = 'D, d M Y H:i:s O'; // الإثنين، 15 أغسطس 2005 15:52:01 +0000const W3C = 'Ym-dTH:i:sP'; // 2005-08-15T15:52:01+00:00// تحاول Moment أيضًا تحليل التواريخ بدون منطقة زمنية أو بدون ثوانٍconst NO_TZ_MYSQL = 'Ymd H:i:s'; // 2005-08-15 15:52:01const NO_TZ_NO_SECS = 'Ymd H:i'; // 15-08-2005 15:52const NO_TIME = 'Ymd'; // 15-08-2005// ستتم إزالة كسور الوقت ".000" تلقائيًا$timeWithFraction = '2016-05-04T10:00:00.000';
قم بإلقاء نظرة على المجلد Locales
لرؤية جميع اللغات المدعومة. اللغة الافتراضية هي en_GB
.
$m = new MomentMoment();echo $m->format('[Weekday:] l'); // على سبيل المثال، أيام الأسبوع: الأربعاء// تعيين localeMomentMoment الألمانية::setLocale('de_DE');$m = new MomentMoment();echo $m->format('[Wochentag:] l'); // على سبيل المثال Wochentag: Mittwoch
اللغات المدعومة حتى الآن:
ar_TN
العربية (تونس) ca_ES
الكاتالونية cs_CZ
التشيكية da_DK
الدنماركية de_DE
الألمانية (ألمانيا) en_CA
الإنجليزية (كندا) en_GB
الإنجليزية (البريطانية) en_US
الإنجليزية (الأمريكية) eo_EO
الاسبرانتو es_ES
الإسبانية (أوروبا) fa_IR
الفارسية fi_FI
الفنلندية fr_CA
الفرنسية (كندا) fr_FR
الفرنسية ( أوروبا) hu_HU
المجري id_ID
الإندونيسي it_IT
الإيطالية ja_JP
اليابانية kz_KZ
الكازاخستانية lv_LV
اللاتفية (Latviešu) nl_NL
الهولندية oc_LNC
Lengadocian pl_PL
البولندية pt_BR
البرتغالية (البرازيل) pt_PT
البرتغالية (البرتغال) ru_RU
الروسية (الإصدار الأساسي) sv_SE
السويدية th_TH
التايلاندية tr_TR
التركية uk_UA
الأوكرانية vi_VN
الفيتنامية zh_CN
الصينية zh_TW
الصينية (التقليدية)
$m = new MomentMoment('2012-04-25T03:00:00', 'CET');echo $m->setTimezone('UTC')->format(); //2012-04-25T01:00:00+0000
MomentMoment::setDefaultTimezone('CET');$m = new MomentMoment('2016-09-13T14:32:06');echo $m->format(); //2016-09-13T14:32:06+0100
$m = new MomentMoment('2012-04-25T03:00:00', 'CET');echo $m->format('l, dS F Y / H:i (e)'); // الأربعاء 25 أبريل 2012 الساعة 03:00 (أوروبا/برلين)
تعتمد التنسيقات على دالة التاريخ وفئة DateTime في PHP.
يمكنك الآن إدخال معالجة تنسيق مختلفة عن طريق تمرير فئة تقوم بتنفيذ FormatsInterface
. يمكنك العثور على مثال داخل مجلد الاختبار لتنفيذ جميع التنسيقات من moment.js. شكرًا لـ Ashish على تخصيص الوقت لمطابقة تنسيقات moment.js
مع تنسيقات PHP. قم بإلقاء نظرة على البرنامج النصي للاختبار لرؤية المثال أثناء العمل.
يمكن للجميع كتابة فئات التنسيق بنفس الطريقة. إنها سهلة وقابلة للتطوير.
// الحصول على فئة التنسيقات المرغوبة// إنشاء لحظة$m = new MomentMoment('2012-04-25T03:00:00', 'CET');// التنسيق مع تعريف moment.jssecho $m->format('LLLL) '، MomentCustomFormatsMomentJs () الجديد) ؛ // الأربعاء 25 أبريل 2012 الساعة 3:00 صباحًا
يمكن أيضًا أن تأتي Custom formats
كجزء من كل Locale
. إذا لم يكن موجودًا للغتك المحلية، فاستمر في إضافته. انظر مثالا للغة الفرنسية.
ما عليك سوى لف كل النص داخل []
وسيتم تخطي جميع الأحرف تلقائيًا لك.
$m = new MomentMoment('2012-04-25T03:00:00', 'CET');echo $m->format('[نحن في شهر:] F'); // نحن في شهر: إبريل
يبدو أن الحساب الترتيبي الداخلي لـ PHP به أخطاء. أضفت حلاً سريعًا للتعامل مع هذه المشكلة.
يطبع المثال التالي الأسبوع من سنة التاريخ المحدد. يجب أن تطبع 22nd
:
// وظيفة داخلية تاريخ('WS', mktime(12, 22, 0, 5, 27, 2014)); // 22th// moment.php$m = new MomentMoment('2014-05-27T12:22:00', 'CET');$m->format('WS'); // الثاني والعشرون
$m = new MomentMoment('2012-05-15T12:30:00', 'CET');echo $m->addHours(2)->format(); // 2012-05-15T14:30:00+0200$m = new MomentMoment('2012-05-15T12:30:00', 'CET');echo $m->subtractDays(7)->subtractMinutes(15) )->تنسيق(); // 2012-05-08T12:15:00+0200$m = new MomentMoment('@1401443979', 'CET'); // unix timeecho $m->subtractDays(7)->subtractMinutes(15)->format(); //2014-05-23T09:44:39+0000
في بعض الأحيان يكون من المفيد أن نأخذ لحظة معينة ونعمل معها دون تغيير الأصل. لهذا استخدم cloning()
.
$m = new MomentMoment('2012-05-15T12:30:00', 'CET');$c = $m->cloning()->addDays(1);echo $m->getDay(); // 15echo $c->getDay(); // 16
وبدلاً من ذلك، يمكنك تمكين الوضع غير القابل للتغيير على الأصل.
$m = new MomentMoment('2012-05-15T12:30:00', 'CET', true);$c = $m->addDays(1);echo $m->getDay(); // 15echo $c->getDay(); // 16// يمكنك أيضًا تغيير الوضع غير القابل للتغيير بعد الإنشاء:$m->setImmutableMode(false)->subtractDays(1);echo $m->getDay(); // 14
الوضع غير القابل للتغيير يجعل جميع طرق التعديل تستدعي cloning()
ضمنيًا قبل تطبيق تعديلاتها.
يضيف | طرح |
---|---|
addSeconds($s) | طرح الثواني($s) |
إضافة دقائق($i) | دقائق الطرح($i) |
إضافة ساعات($h) | ساعات الطرح($h) |
addDays($d) | أيام الطرح($d) |
addWeeks($ث) | طرح أسابيع($ث) |
إضافة أشهر(مليون دولار) | طرح أشهر(مليون دولار) |
إضافة سنوات($y) | طرح سنوات($y) |
واضعة | جيتر |
---|---|
setSecond($s) | الحصول على ثانية () |
ستمينوت($م) | الحصول على دقيقة () |
سيتهور($ح) | getHour() |
سيتداي($د) | احصل على يوم () |
سيتشهر($مليون) | getMonth () |
setYear($y) | الحصول على السنة () |
-- | getQuarter () |
$m = new MomentMoment('2013-02-01T07:00:00');$momentFromVo = $m->fromNow();// أو من لحظة محددة$m = new MomentMoment('2013-02-01T07: 00:00');$momentFromVo = $m->from('2011-09-25T10:00:00');// تأتي النتيجة ككائن قيمة classecho $momentFromVo->getDirection() // "future"echo $momentFromVo->getSeconds() // -42411600echo $momentFromVo->getMinutes() // -706860echo $momentFromVo->getHours() // -11781echo $momentFromVo->getDays() // -490.88echo $momentFromVo->getWeeks() // -70.13echo $momentFromVo->getMonths() // -17.53echo $momentFromVo- >getYears() // -1.42echo $momentFromVo->getRelative() // خلال عام
في بعض الأحيان يكون من المفيد الحصول على حدود الفترة لتاريخ معين. على سبيل المثال، في حالة أن اليوم هو الأربعاء وأحتاج إلى تواريخ البدء/الانتهاء من أسبوع اليوم. الفترات المسموح بها هي week
month
quarter
.
$m = new MomentMoment('2013-10-23T10:00:00');$momentPeriodVo = $m->getPeriod('week');// تأتي النتائج بالإضافة إلى كائن القيمة classecho $momentPeriodVo->getStartDate( ) ->تنسيق('Ymd'); // 21/10/2013echo $momentPeriodVo->getEndDate() ->تنسيق('Ymd'); // 27/10/2013echo $momentPeriodVo->getRefDate() ->تنسيق('Ymd'); // 23-10-2013echo $momentPeriodVo->getInterval(); // 43 = الأسبوع من السنة
نفس الإجراء للفترات الشهرية والربع سنوية:
$momentPeriodVo = $m->getPeriod('month');$momentPeriodVo = $m->getPeriod('ربع');
يعرض وقت التقويم الوقت بالنسبة إلى now
، ولكن بشكل مختلف قليلاً عن Moment::fromNow()
. ستقوم الدالة Moment::calendar()
بتنسيق التاريخ بسلاسل مختلفة اعتمادًا على مدى قرب التاريخ من اليوم.
(new MomentMoment('2014-03-30T16:58:00', 'CET'))->subtractDays(6)->calendar(); // lastweek(new MomentMoment('2014-03-30T16:58:00', 'CET'))->subtractDays(1)->calendar(); // أمس(new MomentMoment('2014-03-30T16:58:00', 'CET'))->calendar(); // today(new MomentMoment('2014-03-30T16:58:00', 'CET'))->addDays(1)->calendar(); // Tomorrow(new MomentMoment('2014-03-30T16:58:00', 'CET'))->addDays(3)->calendar(); // nextweek(new MomentMoment('2014-03-30T16:58:00', 'CET'))->addDays(10)->calendar(); // كل شيء آخر
وقت | عرض |
---|---|
الأسبوع الماضي | يوم الاثنين الماضي الساعة 15:54 |
في اليوم السابق | أمس الساعة 15:54 |
نفس اليوم | اليوم الساعة 15:54 |
في اليوم التالي | غدا الساعة 15:54 |
الاسبوع القادم | الأربعاء الساعة 15:54 |
كل شيء آخر | 04/09/2014 |
ملاحظة: استخدم $moment->calendar(false)
لترك الوقت at 00:00
.
نفس العملية المتبعة في moment.js: تقوم بتغيير اللحظة الأصلية عن طريق ضبطها على بداية/نهاية وحدة زمنية.
$m = new MomentMoment('20140515T10:15:23', 'CET');$m->startOf('year'); // تم ضبطه على الأول من يناير، الساعة 00:00 هذا العام$m->startOf('ربع'); // تم ضبطه على بداية الربع الحالي، اليوم الأول من الأشهر، 00:00$m->startOf('month'); // تم ضبطه على الأول من هذا الشهر، 00:00$m->startOf('week'); // تم ضبطه على اليوم الأول من هذا الأسبوع، 00:00$m->startOf('day'); // تم ضبطه على 00:00 اليوم$m->startOf('hour'); // مضبوط على الآن، ولكن بـ 0 دقيقة، 0 ثانية$m->startOf('دقيقة'); // مضبوط على الآن، ولكن بـ 0 ثانية$m->endOf('year'); // تم ضبطه على 31 ديسمبر، الساعة 23:59 هذا العام$m->endOf('ربع'); // تم ضبطه على نهاية الربع الحالي، آخر يوم من الشهر، 23:59$m->endOf('month'); // تم ضبطه على آخر هذا الشهر، 23:59$m->endOf('week'); // تم ضبطه على اليوم الأخير من هذا الأسبوع، 23:59$m->endOf('day'); // تم ضبطه على 23:59 اليوم$m->endOf('hour'); // مضبوط على الآن، ولكن بـ 59 دقيقة، 59 ثانية$m->endOf('دقيقة'); // تم ضبطه على الآن، ولكن بـ 59 ثانية
ملحوظة: لقد تجاهلت فترة second
لأننا لا نتعامل مع المللي ثانية.
بالنسبة لأحد عملائي، كنت بحاجة للحصول على لحظات خلال أيام الأسبوع المحددة. كانت المهمة هي: أعطني مواعيد Tuesdays
Thursdays
للأسابيع الثلاثة القادمة. لذلك أضفت معالجًا صغيرًا يقوم بهذا بالضبط. ونتيجة لذلك سوف تتلقى مجموعة مليئة Moment Objects
.
// 1 - 7 = الإثنين - الأحد$weekdayNumbers = [2, // الثلاثاء4, // الخميس];$m = new MomentMoment();$dates = $m->getMomentsByWeekdays($weekdayNumbers, 3);// $ التواريخ = [لحظة، لحظة، لحظة ...]
يمكنك الآن الاطلاع على النتيجة ووضعها منسقة في حقل منسدل أو في أي شيء قد تحتاجه.
حاول نقل الطرق المفيدة من moment.js
إضافة اختبارات الوحدة
وأضاف:
دعم PHP 8.2 #218
دعم PHP 8.3 #227
مُثَبَّت:
لغة فرنسية
الاختبارات الكندية
وأضاف:
لغة الاسبرانتو
لغة كازاخستانية
مُثَبَّت:
مطابقة التوقيع DateTime::createFromFormat
وأضاف:
لغة فارسية
وأضاف:
يتحقق الكود من سير عمل إجراءات GH
اللغة الكندية للغة الإنجليزية / الفرنسية
مُثَبَّت:
دمج مع اثنين من العلاقات العامة (شكرًا!)
وأضاف:
إنهاء اللغة
مُثَبَّت:
لغة سويدية
تحديث اللغة الإيطالية
وأضاف:
التنسيقات المخصصة لـ en_US
علامة لتحميل لغة مماثلة
مشكلة التلميح الثابتة
مُثَبَّت:
تنسيق الوقت النسبي مفقود
السماح بـ 9 أرقام unixtime
تم إصلاح RFC2822 كتنسيق صالح
الوقت النسبي الثابت
تمت إضافة اللغة النرويجية
الإصلاحات والإضافات المحلية (راجع التزامات 22.11.2018)
مُثَبَّت:
لغة الأوكيتانية
مُثَبَّت:
قضية اللغة الروسية
وأضاف:
البرتغالية (pt_PT)
مُثَبَّت:
النظام المحلي المجري خلال أيام الأسبوع
وأضاف:
السماح بتهيئة اللحظة باستخدام الطابع الزمني لنظام التشغيل Unix دون البادئة @
مُثَبَّت:
إصلاح تنسيق "LLL" في التنسيقات المخصصة
مُثَبَّت:
تمت إزالة بناء الجملة php5.4+ فقط
مُثَبَّت:
أسماء اليوم والشهر الدنماركية صحيحة
لغة فرنسية
PHPDocs
وأضاف:
ثوابت NO_TZ_MYSQL
و NO_TZ_NO_SECS
و NO_TIME
عند تحليل التواريخ
وأضاف:
التنسيق المخصص الهولندي
مُثَبَّت:
لغة روسية
وأضاف:
لغة تركية
مُثَبَّت:
لغة لينغادوسيان
مُثَبَّت:
يتطلب PHP7.1 setTime $microseconds
وأضاف:
لغة اوكرانية
وأضاف:
اللغة المجرية
مُثَبَّت:
لغة لينغادوسيان
وأضاف:
اللغة الفيتنامية
لغة لينغادوسيان
وأضاف:
تغيير المنطقة الزمنية الافتراضية
مُثَبَّت:
مستندات واجهة التنسيق
وأضاف:
لغة عربية
تنسيق مخصص على المستوى المحلي
مُثَبَّت:
لغة روسية
وأضاف:
اختبارات اللغة الروسية
مُثَبَّت:
اللغة البولندية
حساب الثواني
مُثَبَّت:
الروسية: إصلاحات زمنية أكثر نسبية
مُثَبَّت:
التوقيت النسبي للغة الروسية: التعامل مع اليوم
مُثَبَّت:
في عداد المفقودين التعامل غير قابل للتغيير
مُثَبَّت:
تحسين اللغة البولندية (إضافة Nominativ)
مُثَبَّت:
لغة صينية
تمت إضافة التنسيقات المقبولة إلى README
مُثَبَّت:
اللغة التايلاندية
وأضاف:
اللغة الكاتالونية
مُثَبَّت:
اختبار اللغة البولندية
وأضاف:
لغة روسية
مُثَبَّت:
اختبار اللغة البولندية
وأضاف:
وضع غير قابل للتغيير
مُثَبَّت:
اللغة البولندية
وأضاف:
اللغة البولندية
وأضاف:
لغة اندونيسية
وأضاف:
لغة يابانية
مُثَبَّت:
خطأ مطبعي باللغة الهولندية
وأضاف:
لغة هولندية
وأضاف:
لغة سويدية
وأضاف:
لغة الدنماركية
مُثَبَّت:
ثابت بداية / نهاية أيام الأسبوع للغة الرومانية
مُثَبَّت:
إضافة حرف محدد إلى اللغة الإيطالية
مُثَبَّت:
إرجاع مثيل جديد لـ startOf/endOf للأسبوع والشهر والربع
وأضاف:
لغة التشيكية
وأضاف:
تتلقى لغة calendar
function(Moment $m) {}
تستقبل الإعدادات المحلية relativeTime
function($count, $direction, Moment $m) {}
وأضاف:
إغلاق تمرير ثابت إلى اللغة (التقويم، الوقت النسبي)
قم بتعيين معلومات اللغة الألمانية الصحيحة
وأضاف:
سلاسل اللغة التايلاندية الثابتة
وأضاف:
لغة صينية تقليدية
وأضاف:
لغة الصينية
يتلقى المنسق الترتيبي الآن الرمز token
، على سبيل المثال، الرمز المميز داخل dS
هو d
ثابت: مشكلة الترتيب الإنجليزي للأرقام بين 11 و13
وأضاف: لغة الإيطالية
ثابت: مسألة ترتيبية باللغة الإنجليزية
وأضاف: لغة البرتغالية
مُثَبَّت:
تم عرض اللغة المحلية اسم شهر خاطئ (#34)
تم تغيير ترتيب أيام الأسبوع ضمن الملفات المحلية
وأضاف:
getWeekdayNameLong()
getWeekdayNameShort()
getMonthNameLong()
getMonthNameShort()
وأضاف:
اللغة: التايلاندية
وأضاف:
getMonths()
الحصول على سنوات ()
الحصول على نسبي ()
لغة
لحظة منفو:
مُثَبَّت:
يعرض getSeconds() الآن الاتجاه أيضًا
لحظة منفو:
مُثَبَّت:
مشكلة المنطقة الزمنية التي حدثت فقط لتواريخ unixtime
آخر:
يعود الاتجاه الآن: "المستقبل" (-) / "الماضي" (+)
يتم الآن كتابة قيم الوقت على شكل عوامات
لحظة منفو:
مُثَبَّت:
منطقة زمنية غير معروفة عند إنشاء لحظة
وأضاف:
getMomentsByWeekdays()
getWeekday()
getWeekOfYear()
آخر:
هرب النص
وأضاف:
على سبيل المثال، سيتم تحويل [Hello World]
تلقائيًا إلى Hello World
على سبيل المثال، يظهر WS
للأسبوع الحادي والعشرين من العام الآن الصحيح 21th
وما إلى ذلك.
الحصول على الفترة لربع معين في سنة معينة
week
= أسبوع من السنة
month
= شهر من السنة
quarter
= ربع السنة
إنشاء لحظة جديدة قابلة للتغيير بناءً على المثيل المحدد
startOf وendOf كما تم تنفيذهما بواسطة moment.js
الحصول على فترة الربع من تاريخ معين
سيتداي ()
احصل على يوم ()
سيتشهر ()
getMonth ()
setYear()
الحصول على السنة ()
getQuarter ()
سيتسكوند ()
الحصول على ثانية ()
ستمينوت ()
الحصول على دقيقة ()
سيتهور ()
getHour()
الاستنساخ المضافة ()
تمت إضافة getInterval()
إلى MomentPeriodVo
للإشارة إلى الفاصل الزمني للفترة المحددة
تمت إضافة فئة ثابتة MomentHelper
إصلاح الحساب الترتيبي الداخلي لـ PHP (أيضًا مع تنسيق moment.js)
يمكنك الآن الهروب من النص بتغليفه في []
تمت الإزالة:
يضيف()
طرح()
وأضاف:
تنسيق التقويم كما تم تنفيذه بواسطة moment.js
مُثَبَّت:
عدم التوافق مع PHP 5.3
وأضاف:
اختبار التواريخ بالتنسيق YYYY-mm-dd
و YYYY-mm-ddTHH:ii:ss
يرمي MomentException في تواريخ غير صالحة
رمي الاستثناء كـ MomentException
التحقق من صحة التاريخ عند إنشاء مثيل:
إضافة ثانية ()
إضافة دقائق ()
إضافة ساعات ()
أضف أيام ()
addWeeks()
إضافة أشهر ()
إضافة سنوات ()
طرح الثواني ()
طرح دقائق ()
ساعات الطرح ()
أيام الطرح ()
طرح أسابيع ()
طرح الأشهر ()
طرح سنوات ()
مهمل:
يضيف()
طرح()
يقترح القائمون على هذا المشروع اتباع دليل المساهمة.
Moment.php قابل للتوزيع مجانًا بموجب شروط ترخيص MIT.
حقوق الطبع والنشر (ج) لعام 2017 لصالح تينو إريش
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.