یکی از کارهای زیبا ، ساده و شاید لازمی که میشه در اسکریپت های پیاچپی به کار برد نمایش عمر سایت یا روزها(همچنین ماه ها و سال های) گذشته از تاریخ تولد وبسایت هست، که من این بخش رو در ↗️برنامه ارسال پست های اینستاگرام به تلگرام اضافه کردم که اینجا هم میزارم. هر چند چیز چندان پیچیده ای نداره بصورت روان و ساده توضیح میدم امیدوارم دوستانی که لازم دونستن استفاده کنن یا ایده بگیرن.
ابتدا درون جدول دیتابیس مورد نظرمون در phpmyadmin یک ستون به نام life_site (عمر سایت) یا هر اسم دیگه ای که این مورد رو یادتون بیاره با ویژگی type = int و length = 20 میسازیم.
همانطور که بدیهی هست زمان تولد وبسایت رو باید یکبار در زمان متولد شدن وبسایت ثبت کنیم، که میتونیم این مورد رو در هنگام نصب در بسته نصب کننده اسکریپت(همون کاری که من در sipt کردم) یا در اولین راه اندازی برنامه ثبت کنیم.
ثانیه های گذشته شده از زمان مبدا (ساخت) یونیکس (January 1 1970 00:00:00 GMT) رو با تابع time درون یک متغییر میریزیم:
$birthday = time();
حال مقدار متغیر رو درون ستون life_site که در دیتابیس ساختیم با pdo ذخیره میکنیم:
$stmt = $conn->prepare("INSERT INTO site (life_site) VALUES (:life_site)"); $data = [ 'life_site' => $birthday,]; $stmt->execute($data);
برای نمایش عمر سایت، فرخوانی ستون مورد نظر از دیتابیس و محاسبه اش به صورت زیر عمل میکنیم که بعد از کدها توضیح میدم:
$sql = " SELECT `life_site` FROM `site` " $statement = $conn->prepare($sql); $statement->execute(); $row = $statement->fetch(PDO::FETCH_ASSOC); $life_site = $row['life_site']; $now = time(); $diff = $now - $life_site; $day = round(abs($diff / (60 * 60 * 24))); echo $day;
ابتدا زمان تولد رو از دیتابیس بیرون میکشیم و درون متغیر life_site ذخیره میکنیم، سپس زمان حال رو درون متغیر now میگذاریم، الان زمان حال - زمان تولد میشه مقدار زمان گذشته شده از زمان بوجود اومدن سایت که درون متغیر diff (به معنی تفاوت) ذخیره کردیم. مقدار ثانیه بدست اومده رو اگر تقسیم بر مجموع 60 * 60 * 24 (هر دقیقه 60 ثانیه * هر ساعت 60 دقیقه * ساعات شبانه روز 24 ساعت ) کنیم تعداد ثانیه های یک شبانه روز و در نتیجه، تقسیم بر تاریخ تولد سایت بشه، تعداد روزهای گذشته شده از تولد بچمون (برنامه) بدست میاد.
اگر بخواهیم تعداد ماه های گذشته از تولد سایت رو بدست بیاریم باید تعداد روزهای هر ماه به تقسیم اضافه کنیم 60 * 60 * 24 * 30 ، برای بدست آوردن سال تولد باید تعداد روز های سال یعنی * 365 روهم به اون اضافه کنیم.
در پایان کدها، تابع round در php اعداد را به سمت نزدیک ترین عدد صحیح خلاصه میکند،مثلا ۲.۹ میشود۳.
تابع abs در پیاچپی قدرمطلق عدد را میگیره یا به عبارتی عددمنفی رومثبت میکنه.مثلا -2 میشود2.