Codecourse

Vaxt üzərində manipulyasiya

Bəzən verilənlər bazasındakı vaxtı birbaşa deyil, cari vaxtla müqayisədə göstərmək lazım gəlir. Əsasən şərhlərdə istifadə olunur. Aşağıdakı şəkildən göründüyü kimi məktubun göndərilmə vaxtı birbaşa deyil, cari vaxtla müqayisədə göstərilib.

timestamp

<?php
$cur_date = time();
$date = "2016-02-27 22:18:45";
$date = strtotime($date);
$time_elapsed = $cur_date - $date;
		
$second = $time_elapsed;
$minute = round($time_elapsed / 60);
$hour = round($time_elapsed / (60 * 60));
$day = round($time_elapsed / (60 * 60 * 24));
	
if($second <= 60) {
    echo $second." saniyə əvvəl";
} elseif($minute <= 60) {
    echo $minute." dəqiqə əvvəl";
} elseif($hour <= 24) {
    echo $hour." saat əvvəl";
} elseif($day <= 7) {
    if($day == 1) {
        echo "Dünən";
     } else {
        echo $day." gün əvvəl";
     }
} else {
    echo date("Y-m-d", $date);
}
?>

İlk əvvəl $cur_date dəyişəninə cari vaxtı mənimsədirik. Time() funkisiyası Unix Zaman başlanğıcından (The Unix Epoch, 1 yanvar 1970 00:00:00 GMT) keçən vaxtı saniyə ilə geri qaytarır.

$date dəyişəninə verilənlər bazasındakı vaxt mənimsədilir. Mən yuxarıdakı skriptdə nümunə kimi "2016-02-27 22:18:45" vaxtını göstərmişəm.

Cari vaxtla verilənlər bazasındakı vaxt arasındakı fərqi tapmaq üçün birincidən ikincini çıxmaq lazımdır. Lakin əvvəlcə verilənlər bazasındakı vaxtı (indiki halda "2016-02-27 22:18:45") Unix timestamp formatına çevirmək lazımdır. Bunun üçün strtotime() funksiyasından istifadə edərək verilənlər bazasındakı vaxtı Unix timestamp formatına çeviririk.

Cari vaxtla verilənlər bazasındakı vaxtın fərqi saniyələrlə ifadə olunur və bu qiyməti $second dəyişəninə mənimsədirik. Həmin qiyməti dəqiqə ilə göstərmək üçün cari vaxtla verilənlər bazasındakı vaxtın fərqini ($time_elapsed) 60 saniyəyə bölürük. Bu üsulla saat və həftəlik müddəti müəyyən edirik.

Nəhayət, şərt operatorunun köməyi ilə müvafiq nəticəni əldə edirik.

Yuxarıdakı skripti funkisiya şəklində yazaraq öz proyektlərinizdə istifadə edə bilərsiniz.

Növbəti dərsi seçib keçid düyməsinə sıxın: