এই PHP ফাংশন time_ago($timestamp) একটি তারিখ/সময় স্ট্রিংকে “2 hours ago”, “1 week ago” ইত্যাদির মতো মানুষের পঠনযোগ্য ফর্ম্যাটে রূপান্তর করতে ব্যবহৃত হয়। আসুন ধাপে ধাপে এটি ভেঙে ফেলি:
function time_ago($timestamp)
একটি ইনপুট নেয়: $timestamp (একটি স্ট্রিং, যেমন ‘2025-04-06 10:00:00’)।
$current_time = time(); // Current UNIX timestamp
$time_diff = $current_time - strtotime($timestamp); // Difference in seconds
$seconds = $time_diff;
$minutes = round($seconds / 60);
$hours = round($seconds / 3600);
$days = round($seconds / 86400);
$weeks = round($seconds / 604800);
$months = round($seconds / 2629440);
$years = round($seconds / 31553280);
এই বিভাগটি সময়ের পার্থক্যকে এতে রূপান্তর করে:
এই অংশটি সময় পরিসীমা পরীক্ষা করে এবং সঠিক স্ট্রিংটি প্রদান করে:
if ($seconds <= 60) {
return "Just now";
} elseif ($minutes <= 60) {
return ($minutes == 1) ? "1 minute ago" : "$minutes minutes ago";
}
তাহলে ফাংশনটি রিটার্ন করে:
function time_ago($timestamp) {
$current_time = time();
$time_diff = $current_time - strtotime($timestamp);
$seconds = $time_diff;
$minutes = round($seconds / 60);
$hours = round($seconds / 3600);
$days = round($seconds / 86400);
$weeks = round($seconds / 604800);
$months = round($seconds / 2629440);
$years = round($seconds / 31553280);
if ($seconds <= 60) {
return "Just now";
} elseif ($minutes <= 60) {
return ($minutes == 1) ? "1 minute ago" : "$minutes minutes ago";
} elseif ($hours <= 24) {
return ($hours == 1) ? "1 hour ago" : "$hours hours ago";
} elseif ($days <= 7) {
return ($days == 1) ? "1 day ago" : "$days days ago";
} elseif ($weeks <= 4.3) {
return ($weeks == 1) ? "1 week ago" : "$weeks weeks ago";
} elseif ($months <= 12) {
return ($months == 1) ? "1 month ago" : "$months months ago";
} else {
return ($years == 1) ? "1 year ago" : "$years years ago";
}
}
যদি বর্তমান সময় 2025-04-06 12:00:00 হয় এবং আপনি পাস করেন:
time_ago("2025-04-06 11:45:00");
তারপর: