<?php
function tinh_sinh_nhat($ngay, $thang, $nam) {
// Ngày hiện tại
$today = new DateTime();
// Sinh nhật năm nay
$birthday_this_year = DateTime::createFromFormat('d-m-Y', "$ngay-$thang-" . $today->format('Y'));
// Nếu người dùng nhập sai format
if (!$birthday_this_year) return "Ngày không hợp lệ.";
// Nếu sinh nhật đã qua → tính cho năm sau
if ($birthday_this_year < $today) {
$birthday_next = DateTime::createFromFormat('d-m-Y', "$ngay-$thang-" . ($today->format('Y') + 1));
$interval = $today->diff($birthday_next);
return "🎉 Sinh nhật đã qua " . $today->diff($birthday_this_year)->days . " ngày.<br>"
. "⏳ Còn " . $interval->days . " ngày nữa đến sinh nhật tiếp theo.";
}
// Nếu sinh nhật chưa đến
else {
$interval = $today->diff($birthday_this_year);
return "⏳ Còn " . $interval->days . " ngày nữa đến sinh nhật.";
}
}
$result = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$ngay = $_POST["ngay"];
$thang = $_POST["thang"];
$nam = $_POST["nam"];
$result = tinh_sinh_nhat($ngay, $thang, $nam);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Tính ngày sinh nhật</title>
<meta charset="UTF-8">
<style>
body { font-family: Arial; padding: 20px; }
.box { width: 300px; padding: 20px; border: 1px solid #ccc; border-radius: 10px; }
input { width: 80px; padding: 5px; margin-bottom: 10px; }
button { padding: 8px 12px; cursor: pointer; }
.result { margin-top: 20px; font-size: 18px; font-weight: bold; }
</style>
</head>
<body>
<div class="box">
<h3>Tính toán ngày sinh nhật</h3>
<form method="POST">
Ngày: <input type="number" name="ngay" min="1" max="31" required><br>
Tháng: <input type="number" name="thang" min="1" max="12" required><br>
Năm: <input type="number" name="nam" min="1900" max="2100" required><br>
<button type="submit">Tính</button>
</form>
<?php if ($result != ""): ?>
<div class="result">
<?= $result ?>
</div>
<?php endif; ?>
</div>
</body>
</html>