Document.lastModified

من موسوعة حسوب

تُعيد الخاصية document.lastModified سلسلةً نصيةً تحتوي على تاريخ ووقتِ آخر تعديلٍ للمُستند الحاليّ.

البنية العامة

string = document.lastModified;

مثال

طريقة الاستعمال البسيطة:

alert(document.lastModified); 
// يُعيد تاريخا مُشابها لما يلي
// 03/22/2018 05:20:48

تحويل قيمة lastModified إلى كائن من النّوع Date:

var oLastModif = new Date(document.lastModified);

تحويل قيمة lastModified إلى عدد الأجزاء من ألف جزء من الثّانيّة التّي مرّت منذ 1 يناير 1970 على السّاعة 00:00:00:

var nLastModif = Date.parse(document.lastModified);

ملاحظات

لاحظ بأنّه لا يُمكن استعمال السّلسة النّصيّة التي تُعيدها الخاصيّة lastModified من أجل المُقارنة بين تواريخِ تعديل المُستندات بسهولة.

إليك مثالا لكيفيّة عرض نافذة تنبيهٍ عندما تُعدَّل الصّفحة (انظر أيضًا: ملفّات الارتباط في JavaScript):

if (Date.parse(document.lastModified) > parseFloat(document.cookie.replace(/(?:(?:^|.*;)\s*last_modif\s*\=\s*([^;]*).*$)|^.*$/, "$1") || "0")) {
    document.cookie = "last_modif=" + Date.now() + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=" + location.pathname;
    alert("لقد عُدّلت هذه الصّفحة");
}

نفسُ المثال مع تجاهل أوّل زيارة:

var

    nLastVisit = parseFloat(document.cookie.replace(/(?:(?:^|.*;)\s*last_modif\s*\=\s*([^;]*).*$)|^.*$/, "$1")),
    nLastModif = Date.parse(document.lastModified);

if (isNaN(nLastVisit) || nLastModif > nLastVisit) {
    document.cookie = "last_modif=" + Date.now() + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=" + location.pathname;
    if (isFinite(nLastVisit)) {
        alert("لقد عُدّلت هذه الصّفحة");
    }
}

مُلاحظة: المُتصفّحات التي تعمل بمُحرِّك WebKit (مثل Chrome وSafari) تُعيد التوقيت بصيغة UTC، أمّا Firefox وInternet Explorer فتُعيد السّلسة بصيغة التوقيت المحليّ.

مصادر ومواصفات

  • مواصفة HTML5.